快速配置log4j,log4j常用参数说明

俗话说,代码写的好,日志输出少不了;bug改的快,日志要查看。

可见日志在开发过程中必不可少,下面整理了一些log4j的常用配置用于大家参考。


一、概念篇:log4j中的五个参数

  1. 日志记录器:logger

  2. 根记录器:rootLogger

  3. 类别:category

  4. 输出地:appender
    log4j官方定义的 appender 的几种实现

配置 说明
org.apache.log4j.ConsoleAppender 控制台输出
org.apache.log4j.FileAppender 输出到日志文件
org.apache.log4j.DailyRollingFileAppender 输出到日志文件,每天产生一个新的日志文件
org.apache.log4j.RollingFileAppender 日志文件大小到达指定的大小后产生新的文件

Tips:

如果日志数量量不大,我们可以使用 DailyRollingFileAppender 每天产生一个日志文件,方便查看。
如果日志量很大,我们可以使用 RollingFileAppender 来限定每个日志文件的大小,这样每天可能会产生多个日志文件。

  1. 日志格式化器:layout
    负责日志以什么格式输出,输出哪些附加信息,有以下几种选项
选项 说明
org.apache.log4j.HTMLLayout 以HTML表格形式布局
org.apache.log4j**.PatternLayout 可以灵活地指定布局模式(最为常用,最为推荐)
org.apache.log4j.SimpleLayout 包含日志信息的级别和信息字符串
org.apache.log4j.TTCCLayout 包含日志产生的时间、线程、类别等等信息

如果使用 PatternLayout 布局方式,需要对 ConversionPattern
属性进行具体的配置

%m 输出代码中指定的消息;
%M 输出打印该条日志的方法名;
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL;
%r 输出自应用启动到输出该log信息耗费的毫秒数;
%c 输出所属的类目,通常就是所在类的全名;
%t 输出产生该日志事件的线程名;
%n 输出一个回车换行符,Windows平台为"rn”,Unix平台为"n”;
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式。
%l 输出日志事件的发生位置,及在代码中的行数;

org.apache.log4j.PatternLayout 配置示例:

log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern= %p %d{yyyy MMM dd HH:mm:ss,SSS} [%t] %C.%M(%L)>>%m%n

实战篇:

1. 配置根 Logger

log4j.rootLogger = [ level ] , appenderName, appenderName, …

leve :是日志记录的优先级,常用的日志优先级从高到低有:ERROR、WARN、INFO、DEBUG
appenderName:指日志信息的输出目的地,有CONSOLE(控制台)、ROLLING_FILE (滚动日志文件)两种,目的地可以指定多个。

配置示例 说明
log4j.rootLogger=INFO,CONSOLE,ROLLING_FILE 日志输出级别为INFO,输出到控制台、日志文件
log4j.rootLogger=DEBUG,CONSOLE 日志输出级别为DEBUG,输出到控制台

2. 配置 CONSOLE

 配置CONSOLE时,所有的配置前面需要加上 log4j.appender.CONSOLE。
 配置首行默认为:log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
配置属性项 配置说明
Threshold 指定日志输出的最低级别
Target 指定输出的控制台
Encoding 指定输出的字符格式
layout 指定布局

配置示例:

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=DEBUG
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=  %p %d{yyyy MMM dd HH:mm:ss,SSS} [%t] %C.%M(%L)>>%m%n

配置示例中是对日志目的地为 CONSOLE 做的配置,如果是 ROLLING_FILE ,配置项前面需要变成:log4j.appender.FILE,配置项不变,根据需要完成配置即可。

log4j 完整配置示例:

log4j.rootLogger=INFO,CONSOLE,ROLLING_FILE
log4j.logger.org.springframework.jdbc.core.JdbcTemplate=DEBUG

# Console Appender
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=DEBUG
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern= aFinanceInterface %p %d{yyyy MMM dd HH:mm:ss,SSS} [%t] %C.%M(%L)>>%m%n

# File Appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.Threshold=DEBUG
log4j.appender.FILE.File=logs/aFinance.log
log4j.appender.FILE.Append=true
log4j.appender.FILE.MaxFileSize=10Mb
log4j.appender.FILE.MaxBackupIndex=10
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} - [ %p ]  %m%n

# Rolling File
#log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender
log4j.appender.ROLLING_FILE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.ROLLING_FILE.DatePattern='.'yyyy-MM-dd
log4j.appender.ROLLING_FILE.Threshold=INFO
log4j.appender.ROLLING_FILE.File=/opt/logs/aBossPayInteface.log
log4j.appender.ROLLING_FILE.Append=true
log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.ROLLING_FILE.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} - [ %p ]  %m%n

log4j的配置有 .xml 和 .properties 两种方式,xml的配置可以更加全面和细化,比如针对不同级别的日志输出到不同的文件,而properties在这方面就比较笼统了,多种级别的日志都输入到同一个文件,使用起来不是很友好,会感觉日志比较混乱。

发布了19 篇原创文章 · 获赞 5 · 访问量 2628

猜你喜欢

转载自blog.csdn.net/weixin_36908494/article/details/103794391