一、 配置根Logger
其语法为:
log4j.rootLogger = LOGLEVEL, AppenderName1, AppenderName2
LOGLEVEL 是日志记录的优先级分为(从低到高) OFF、TRACE、DEBUG、INFO、WARN、ERROR、FATAL、ALL
a. log4j 建议只使用四个级别分别是 DEBUG、INFO、WARN、ERROR
b. 通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关
c. 比如在这里定义了 INFO 级别,则应用程序中所有 DEBUG 级别的日志信息将不被打印出来
二、 日志信息输出到哪个地方(即AppenderNameX)
语法:
log4j.appender.appenderName = fully.qualified.name.of.appender.class
log4j.appender.appenderName.optionN = valueN
Log4j提供的appender有以下几种
AppenderName | 解释 |
---|---|
org.apache.log4j.ConsoleAppender | 输出到控制台 |
org.apache.log4j.FileAppender | 输出到文件 |
org.apache.log4j.DailyRollingFileAppender | 每天产生一个日志文件 |
org.apache.log4j.RollingFileAppender | 文件大小到达指定尺寸的时候产生一个新的文件 |
org.apache.log4j.WriterAppender | 将日志信息以流格式发送到任意指定的地方 |
3. ConsoleAppender选项属性
属性名 | 默认值 | 说明 |
---|---|---|
Threshold | DEBUG | 指定日志消息的输出最低层次 |
ImmediateFlush | true | 默认值是true,所有的消息都会被立即输出 |
Target | System.err | 默认值System.out,输出到控制台(err为红色,out为黑色 |
4. FileAppender选项属性
属性名 | 默认值 | 说明 |
---|---|---|
Threshold | INFO | 指定日志消息的输出最低层次 |
ImmediateFlush | true | 默认值是true,所有的消息都会被立即输出 |
File | log4j.log | 指定消息输出到当前目录下 log4j.log 文件 |
Append | false | 默认值true,将消息追加到指定文件中,false指将消息覆盖指定的文件内容 |
Encoding | UTF-8 | 可以指定文件编码格式 |
5. DailyRollingFileAppender选项属性
属性名 | 默认值 | 说明 |
---|---|---|
Threshold | WARN | 指定日志消息的输出最低层次 |
ImmediateFlush | true | 默认值是true,所有的消息都会被立即输出 |
Encoding | UTF-8 | 可以指定文件编码格式 |
File | log4j.log | 指定消息输出到 log4j.log 文件 |
Append | false | 默认值true,将消息追加到指定文件中,false 指将消息覆盖指定的文件内容 |