本文共 2124 字,大约阅读时间需要 7 分钟。
log4j日志配置详解
1. 输出级别种类
日志输出的级别主要包括以下四种:
- ERROR(错误):表示严重错误,通常表示程序出现了严重的错误。
- WARN(警告):表示一般性的警告信息,例如getSession()方法丢失session的情况。
- INFO(信息):表示一般需要显示的信息,例如用户登录或注销时的提示。
- DEBUG(调试):表示程序的调试信息,通常用于调试阶段。
2. 日志信息输出目的地
通过配置,可以指定日志信息输出到不同的地方。常见的输出目的地包括:
- 控制台:通过org.apache.log4j.ConsoleAppender实现。
- 文件:通过org.apache.log4j.FileAppender实现。
- 滚动文件:通过org.apache.log4j.DailyRollingFileAppender实现,每天产生一个新的日志文件。
- 滚动文件(按大小定频率滚动):通过org.apache.log4j.RollingFileAppender实现,当文件达到指定大小时产生新的文件。
- 流输出:通过org.apache.log4j.WriterAppender实现,将日志信息以流格式发送到指定的地方。
3. 日志信息格式配置
日志信息的格式可以通过指定不同的布局模式来配置。常见的布局模式包括:
- HTMLLayout:以HTML表格形式布局。
- PatternLayout:可以灵活地指定布局模式。
- SimpleLayout:包含日志信息的级别和信息字符串。
- TTCCLayout:包含日志产生的时间、线程、类别等等信息。
通过配置ConversionPattern,可以定义日志信息的具体格式。例如:ConversionPattern=%d{ABSOLUTE} %5p %c{<div></div> 1}:%L - %m%n
4. 控制台选项
控制台输出可以通过以下配置进行定制:
- Threshold:指定日志消息的输出最低层次。默认为DEBUG级别。
- ImmediateFlush:默认为true,表示所有消息都会被立即输出。
- Target:默认为System.out,表示输出到控制台。
5. 文件appender选项
文件appender的配置包括:
- Threshold:指定日志消息的输出最低层次。默认为DEBUG级别。
- ImmediateFlush:默认为true,表示所有消息都会被立即输出。
- File:指定消息输出到文件。例如File=mylog.txt。
- Append:默认为true,表示消息会被追加到文件中;false表示消息会覆盖文件内容。
- MaxFileSize:指定文件的最大大小。例如MaxFileSize=100KB。
- MaxBackupIndex:指定可以产生的滚动文件的最大数。例如MaxBackupIndex=2。
6. 滚动文件appender选项
滚动文件appender的配置包括:
- Threshold:指定日志消息的输出最低层次。默认为DEBUG级别。
- ImmediateFlush:默认为true,表示所有消息都会被立即输出。
- File:指定消息输出到文件。例如File=mylog.txt。
- Append:默认为true,表示消息会被追加到文件中;false表示消息会覆盖文件内容。
- MaxFileSize:指定文件的最大大小。例如MaxFileSize=100KB。
- MaxBackupIndex:指定可以产生的滚动文件的最大数。例如MaxBackupIndex=2。
7. 日志信息格式中的符号含义
日志信息格式中常用的符号及其含义包括:
- %p:输出日志信息的优先级(DEBUG、INFO、WARN、ERROR、FATAL)。
- %d:输出日志时间点的日期或时间,默认格式为ISO8601。例如:%d{yyy-MM-dd HH:mm:ss.SSS}。
- %r:输出自应用启动到输出该log信息耗费的毫秒数。
- %c:输出日志信息所属的类目,通常是所在类的全名。
- %t:输出产生该日志事件的线程名。
- %l:输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合。
- %x:输出和当前线程相关联的NDC嵌套诊断环境。
- %%:输出一个“%”字符。
- %F:输出日志消息产生时所在的文件名称。
- %L:输出代码中的行号。
- %m:输出代码中指定的消息,产生的日志具体信息。
- %n:输出一个回车换行符。Windows平台为/r/n,Unix平台为/n。
8. 格式化字符串的宽度和对齐方式
通过在格式化字符串中添加修饰符,可以控制输出的最小宽度、最大宽度和对齐方式。例如:
- %20c:指定输出category的名称最小的宽度是20,右对齐。
- %-20c:指定输出category的名称最小的宽度是20,左对齐。
- %.30c:指定输出category的名称最大的宽度是30,截断左边多出的字符。
- %20.30c:如果category的名称小于20,就补空格并右对齐;如果大于30,则截断左边多出的字符。
通过合理配置日志输出目的地、日志格式以及控制台选项,可以实现对日志信息的精确控制和管理。
转载地址:http://edufk.baihongyu.com/