Log4j使用(一):每天生成一个日志文件DailyRollingFileAppender的使用

不多说,先上一个XML版的配置范例:


 	//文件存放路径
        
	//每次记录时是否叠加,默认为true
        
	//日期后缀格式(下面有详细配置说明)
        
 	//日志文件中所显示的信息格式(下面介绍)
        
            
        
 	//过滤器,记录的日志等级[LevelMin,LevelMax]
        
            
            
        


一、日期的后缀格式(即DatePattern属性)介绍:

可选值有6个:

* '.'yyyy-MM,对应monthly(每月)

* '.'yyyy-ww,对应weekly(每周)

* '.'yyyy-MM-dd,对应daily(每天)

* '.'yyyy-MM-dd-a,对应half-daily(每半天)

* '.'yyyy-MM-dd-HH,对应hourly(每小时)

* '.'yyyy-MM-dd-HH-mm,对应minutely(每分钟)

注意:1、不需要处理的字符要加单引号,如上面可选值中的'.',还有示例中的'.log'

   2、生成的第一个文件不会带有日期后缀,过了DatePatten所设定的间隔后,再生成新的文件后,之前的文件就会被转换成带日期格式的文件。



二、日志文件中所显示的信息格式(即ConversionPattern属性):

-X号: X信息输出时左对齐;

%p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL,

%d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921

%r: 输出自应用启动到输出该log信息耗费的毫秒数

%c: 输出日志信息所属的类目,通常就是所在类的全名

%t: 输出产生该日志事件的线程名

%l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)

%x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。

%%: 输出一个"%"字符

%F: 输出日志消息产生时所在的文件名称

%L: 输出代码中的行号

%m: 输出代码中指定的消息,产生的日志具体信息

%n: 输出一个回车换行符,Windows平台为"\r\n",Unix平台为"\n"


附:范例中对应的java代码:

定义org.apache.log4j.Logger变量:

private static final Logger LOG = Logger.getLogger(xxx.class);

使用:

LOG.info("clerkNo=" +clerkNo+ ",currentTime="+currentTime+",IP="+currentIp);

文件列表展示:

文本内容展示:

[14:14:39:778] [INFO] - clerkNo=8332173,currentTime=2017-09-29 14:14:39,IP=10.12.112.28



你可能感兴趣的:(Log4j)