通常,我们都提供一个名为 log4j.properties的文件,在第一次调用到Log4J时,Log4J会在类路径中定位这个文件,并读入这个
文件完成的配置。这个配置文件告 诉Log4J以什么样的格式、把什么样的信息、输出到什么地方。Log4j有三个主要的组件:Loggers
(记录器),Appenders(输出源)和Layouts(布局),这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使
用这三个组件可以轻松的记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置。
Logger
Logger负责处理日志记录的大部分操作。
其语法为:
log4j.rootLogger = [ level ] , appenderName, appenderName, …
其中, level 是日志记录的优先级,分为 OFF 、 FATAL 、 ERROR 、 WARN 、 INFO 、 DEBUG 、 ALL 或者自定义的级别。
Log4j 建议只使用四个级别,优先级从高到低分别是 ERROR 、 WARN 、 INFO 、 DEBUG 。通过在这里定义的级别,您可以
控制到应用程序中相应级别的日志信息的开关。比如在这里定义了 INFO 级别,只有等于及高于这个级别的才进行处理,则应用
程序中所有 DEBUG 级别的日志信息将不被打印出来。 ALL: 打印所有的日志, OFF :关闭所有的日志输出。 appenderName 就
是指定日志信息输出到哪个地方。可同时指定多个输出目的地。
Appender
Appender配置日志信息输出目的地,负责控制日志记录操作的输出。
其语法为:
log4j.appender.appenderName = fully.qualified.name.of.appender.class
log4j.appender.appenderName.option1 = value1
log4j.appender.appenderName.optionN = valueN
其中, Log4j 提供的 appender 有以下几种:
org.apache.log4j.ConsoleAppender (控制台),
org.apache.log4j.FileAppender (文件),
org.apache.log4j.DailyRollingFileAppender (每天产生一个日志文件),
org.apache.log4j.RollingFileAppender (文件大小到达指定尺寸的时候产生一个新的文件),可通过
log4j.appender.appenderName.MaxFileSize=100KB 设置文件最大的大小,还可通过
log4j.appender.appenderName.MaxBackupIndex=1 设置备份文件的最大个数。
org.apache.log4j.WriterAppender (将日志信息以流格式发送到任意指定的地方)
例:
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
定义一个名为 stdout 的输出目的地, ConsoleAppender 为控制台。
Layout
Log4j 提供的 layout 有以下几种:
org.apache.log4j.HTMLLayout (以 HTML 表格形式布局),
org.apache.log4j.PatternLayout (可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout (包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout (包含日志产生的时间、线程、类别等等信息)
格式化日志信息
Log4J 采用类似 C 语言中的 printf 函数的打印格式格式化日志信息,打印参数如下:
%p 输出优先级,即 DEBUG , INFO , WARN , ERROR , FATAL
%P 错误
%m 输出代码中指定的消息
%M 消息所在的函数名
%r 输出自应用启动到输出该 log 信息耗费的毫秒数
%R 错误
%c 输出所属的类目,通常就是所在类的全名
%C 效果跟%c一样
%t 输出产生该日志事件的线程名
%T 错误
%n 输出一个回车换行符, Windows 平台为 “rn” , Unix 平台为 “n”
%N 错误
%d 输出日志时间点的日期或时间,默认格式为 ISO8601 ,也可以在其后指定格式,比如: %d{yyyy MMM dd HH:mm:ss,SSS} ,输出类似: 2002 年 10 月 18 日 22 : 10 : 28 , 921
%D 错误
%l 输出日志事件类目名+函数名,文件名+代码中的行号。
%L 输出日志事件代码中的行号。
%f 错误
%F 输出日志所在的文件名
%% 输出一个"%"字符
可以在%与模式字符之间加上修饰符来控制其最小宽度、最大宽度、和文本的对齐方式。如:
1)%20m:指定输出信息,最小的宽度是20,如果category的名称小于20的话,默认的情况下右对齐。
2)%-20m:指定输出信息,最小的宽度是20,如果category的名称小于20的话,"-"号指定左对齐。
3)%.30m:指定输出信息,最大的宽度是30,如果category的名称大于30的话,就会将左边多出的字符截掉,但小于30的话也不会有空格。
4)%20.30m:如果信息小于20就补空格,并且右对齐,如果其名称长于30字符,,就会将左边多出的字符截掉。
Log4J常识
最新推荐文章于 2023-06-04 23:51:59 发布