Log4j的使用:
(1)导入jar包
(2)配置文件:在项目的src目录下创建一个log4j.properties文件。
在配置文件中写入(加粗部分):
log4j.rootLogger=[ level ], appenderName1 , appenderName2,...
Level:是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者自定义级别。
Log4j建议只使用4个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,可以控制到应用程序中相应级别的日志信息的开关。
比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。
appenderName:就是指定日志信息输出到哪个地方,可以同时指定多个输出目的地。例如:log4j.rootLogger=INFO,A,B,C配置了3个输出地方,这个名字可以任意,但必须与我们在后面进行的设置名字对应。
log4j.appender.A=org.apache.log4j.ConsoleAppender
此句定义名为A的输出端是那种类型,可以是:
org.apache.log4j.ConsoleAppender (控制台)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
log4j.appender.A.layout=org.apache.log4j.PatternLayout
此句定义名为A的输出端的layout是哪种类型,可以是:
org.apache.log4j.HTMLLayout(以HTML表格形式布局)
org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等信息)
log4j.appender.A.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%p]:%l - %m%n
打印参数如下:
%m输出代码中指定的消息
%M输出打印该条日志的方法名
%p输出优先级,即OFF、FATAL、ERROR、WARN、INFO、DEBUG...
%r输出自应用启动到输出该log信息耗费的毫秒数
%c输出所属类目,通常就是所在类的全名
%t输出产生该日志事件的线程名
%n输出一个回车换行符
%d输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy-MM-dd HH:mm:ss,SSS},输出类似:2019-04-20 22:10:28,921
%l输出日志事件的发生位置,及在代码中的行数
log4j.appender.B.Threshold=INFO //指定当前日志的输出级别,优先级低于指定级别的日志不输出。
例如:
log4j.rootLogger=INFO,A,B,C
#A#
1 log4j.appender.A=org.apache.log4j.ConsoleAppender//将日志输出到控制台 2 3 log4j.appender.A.Target=System.out 4 5 log4j.appender.A.layout=org.apache.log4j.PatternLayout 6 7 log4j.appender.A.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t][%p]:%l - %m%n
##B
1 log4j.appender.B=org.apache.log4j.DailyRollingFileAppender 2 3 #B de suo zai mu lu 4 5 log4j.appender.B.File=log/info.log //指定B文件的所在目录 6 7 log4j.appender.B.Appender=true//指定是否可以追加 8 9 log4j.appender.B.Threshold=INFO//指定B文件记录的日志级别 10 11 log4j.appender.B.layout=org.apache.log4j.PatternLayout 12 13 log4j.appender.B.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t][%p]:%l - %m%n //日志输出格式
#C
1 log4j.appender.C=org.apache.log4j.DailyRollingFileAppender 2 3 #C de suo zai mu lu 4 5 log4j.appender.C.File=log/error.log 6 7 log4j.appender.C.Appender=true 8 9 log4j.appender.C.Threshold=ERROR 10 11 log4j.appender.C.layout=org.apache.log4j.PatternLayout 12 13 log4j.appender.C.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t][%p]:%l - %m%n
使用示例:
1 import org.apache.log4j.*; 2 public class Test { 3 public static void main(String[] args) { 4 Logger logger=Logger.getLogger(Test.class); 5 logger.error("我是error错误"); //记录一个error级别的日志 6 logger.info("我是info错误"); //记录一个info级别的日志 7 logger.warn("我是warn错误"); //记录一个warn级别的日志 8 } 9 }