log4j properties 入门学习

大纲:
  • 配置文件结构
  • 配置文件结构说明
    • 控制台输出配置
    • 将日志输出到文件,自动封存日志
    • 将日志输出到文件,并按日期进行封存
    • 自定义 Appender

一、配置文件结构

log4j 配置主要由三个重要的组建构成:
- 日志信息的优先级
- 日志信息的输出目的地
- 日志信息的输出格式

日志级别由低到高:ALL、DEBUG、INFO、WARN、ERROR、FATAL、OFF

Log4j 提供的 Appender 有以下几种:

  • org.apache.log4j.ConsoleAppender(控制台)
  • org.apache.log4j.FileAppender(文件)
  • org.apache.log4j.DailyRollingFileAppender(每日生产一个日志文件)
  • org.apache.log4j.RollingFileAppender(文件到达指定尺寸的时候生产一个新文件)
  • org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

log4j 提供的 layout 有以下几种:

  • org.apache.log4j.HTMLLayout(以 HTML 表格形式布局)
  • org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
  • org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
  • org.apache.log4j.TICCLayout(包含日志产生的时间、线程、类别等等信息)

1、定义需要用到的rootLogger

log4j.rootLogger=INFO,A1,R,E,MyAppender

2、分别对 rootLogger 进行各自的配置

A、控制台输出配置

#初始化 appender 实例 A1 为 org.apache.log4j.ConsoleAppender 类的一个实例
log4j.appender.A1=org.apache.log4j.ConsoleAppender
# 输出控制台
log4j.appender.A1.Target=System.out
# 创建 A1.layout 为 org.apache.log4j.PatternLayout 的实例
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
# 配置日志输出格式
log4j.appender.A1.layout.ConversionPattern=[%c]%m%n

B、将日志输出到文件,自动封存日志

# 实例化 org.apache.log4j.RollingFileAppender 对象 R
log4j.appender.R=org.apache.log4j.RollingFileAppender 
# 配置文件输出路径
log4j.appender.R.File=sshf.log
# 当文件大小大于 10MB 时,封存日志,命名为sshf.log.1、sshf.log.2
log4j.appender.R.MaxFileSize=10MB
# 备份文件数,最大为2,当文件数大于 2 时,
# 会自动删除最先生成的备份文件,这里为 sshf.log.2
log4j.appender.R.MaxBackupIndex=2
# 接收日志级别配置,ALL 和 ALL 以上级别的日志
log4j.appender.R.Threshold=ALL
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH\:mm\:ss,SSS}][%c]%m%n

C、将日志输出到文件,并按日期进行封存

log4j.appender.E=org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File=Error.log
log4j.appender.E.Threshold=ERROR
log4j.appender.E.layout=org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH\:mm\:ss,SSS}][%c]%m%n
# 封存格式,即Error.log.2016-06-17,当第二天有日志输出时,才会备份
# 第一天输出的日志,并将 Error.log 清空
log4j.appender.E.datePattern='.'yyyy-MM-dd
# 是否追加到文件末尾
log4j.appender.E.append=true

D、自定义 Appender

# com.spstudy.logAppernder.MyAppender 为我自定义的类,该类继承了 
# org.apache.log4j.DailyRollingFileAppender
log4j.appender.MyAppender=com.spstudy.logAppernder.MyAppender
log4j.appender.MyAppender.File=WARN.log
log4j.appender.MyAppender.Threshold=WARN
log4j.appender.MyAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.MyAppender.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH\:mm\:ss,SSS}][%c]%m%n
log4j.appender.MyAppender.datePattern='.'yyyy-MM-dd
log4j.appender.MyAppender.append=true

com.spstudy.logAppernder.MyAppender 类,只输出相应级别的log

package com.spstudy.logAppernder;

import org.apache.log4j.DailyRollingFileAppender;
import org.apache.log4j.Priority;

public class MyAppender extends DailyRollingFileAppender {
    @Override  
     public boolean isAsSevereAsThreshold(Priority priority) {  
      //只判断是否相等,而不判断优先级  
      return this.getThreshold().equals(priority);  
     } 
}

相关网站:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值