项目中log4j的实例整理

版本:WEB-INF/lib/log4j-1.2.17.jar
配置文件路径 \src\log4j.properties

简介:Log4j是Apache下的一款开源的日志框架,能够满足我们在项目中对于日志记录的需求。
本次主要针对项目中log4j.properties的配置项进行整理,方便理解和以后扩展使用。

log4j.rootLogger=INFO,CONSOLE,LOGFILE

配置日志级别以及日志输出的地方;
INFO为日志级别,日志一般分5个等级,从低到高分别是 DEBUG INFO WARN ERROR FATAL。

priority :debug

开始环境一般为DEBUG,生产环境为了防止过多的日志影响系统性能(频繁的IO输出)可以设置为WARN;
CONSOLE,LOGFILE 为日志输出的地方,名字可以任意命名,但和下面的log4j.appender.CONSOLE、log4j.appender.LOGFIL要对应一致;

info LOGFILE

具体配置,LOGFILE的配置,与上面对应;

log4j.appender.LOGFILE=org.apache.log4j.DailyRollingFileAppender  
    org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)

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

log4j.appender.LOGFILE.File=kstrap.log

日志输出文件名,对应下项目日志:

-rw-r--r-- 1 smartyd dba   152960 Apr  1 17:32 kstrap.log
log4j.appender.LOGFILE.Encoding=UTF-8

日志输出编码格式

log4j.appender.LOGFILE.Append = true

日志输出是否追加,默认就是true,系统启动时追加至文件中,否则会覆盖原有内容;

-rw-r--r-- 1 smartyd dba    87936 Feb 18  2023 kstrap.log.20230218
log4j.appender.LOGFILE.DatePattern = '.'yyyyMMdd

日志输出文件按天进行分割:例如:

log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout 

使用指定的Layout来展示(格式化)日志:
org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
其他:
org.apache.log4j.HTMLLayout(以HTML表格形式布局)
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息

log4j.appender.LOGFILE.layout.ConversionPattern=[kstrap] %p %d{yyyy-MM-dd HH:mm:ss,SSS} %C.%M(%L) %m%n

实际样例:

[kstrap] INFO 2020-04-01 17:01:40,866 com.kayak.web.base.action.DictAction.dictJson(34) ##### dict json result : {"M01":"每月","M03":"每季","M12":"每年","Z":"到期结息"}

指定布局模式:【重点】附对应拆解:
[kstrap] 固定字符 >>kstrap
%p 输出优先级,如果是调用debug()输出的,则为DEBUG,依此类推 >>INFO
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式。 >>2020-04-01 17:01:40,866
%C 列出调用logger的类的全名(包含包路径) >>com.kayak.web.base.action.DictAction
%M 显示调用logger的方法名 >>dictJson
%L 显示调用logger的代码行 >>34
%m 输出代码中指定的信息 >>##### dict json result : {"M01":"每月","M03":"每季","M12":"每年","Z":"到期结息"}
%n 出一个回车换行符,Windows平台为“rn”,Unix平台为“n”

log4j.appender.LOGFILE.threshold=INFO

输出IFNO级别以上的日志,rootLogger设置为DEBUG时,只输出INFO以上(INFO、WARN、ERROR、FATAL)的信息到文件中去,而DEBUG信息就不会输出了;

CONSOLE的配置,与上面LOGFILE类似,不多讲了。

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender                         
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout           
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout.ConversionPattern=[kstrap] %p %d{yyyy-MM-dd HH:mm:ss,SSS} %C.%M(%L) %m%n
log4j.appender.CONSOLE.threshold=INFO

你可能感兴趣的:(项目中log4j的实例整理)