下面是“详解log4j.properties的简单配置和使用”的完整攻略。
一、log4j.properties概述
log4j.properties是一个Log4j的配置文件。在Java应用程序中使用Log4j,我们通常先要配置log4j.properties文件。
在该文件中可以定义:
- 根节点日志级别
- 不同包的日志级别
- 不同的日志输出方式
- 日志格式等
下面简单介绍一下log4j.properties配置文件的语法:
- 注释:
注释以#或!开头。例如:
# This is a comment
! This too is a comment
- 关键字定义:
关键字是不区分大小写的。
-
log4j.rootLogger:
根日志的定义,其中控制根日志的基础设置。
log4j.rootLogger=[日志级别], [Appender名字]
-
log4j.appender.\<name>:
name是指定的输出源名字。它的最小的排列是输出源的类型和输出源的名字。在这个名字后面可以由一个.和一个子名字来控制这个输出源。
-
log4j.logger.\<logger-name>:
logger-name是指定的logger名字。log4j表示的是logger的名字,所以如果不指定的话,我们也可以用root表示根Logger。
-
log4j.logger.\<logger-name>.\<level>=\<logger-level>:
logger-level是logger的级别,我们通常会使用debug、info、warn、error和fatal等级别。
-
log4j.appender.\<name>.threshold=\<level>:
threshold是指定的level级别。它用来控制一个输出源或一个某个输出源的中的某个appender对象,最多输出一个最高水平的上限值。
-
log4j.appender.\<name>.\<param>=\<value>:
用来设置输出源实际的效果,其中param是指定的参数,value是指定的参数的效果。
二、log4j.properties实例
- 输出到控制台
在这个例子中,我们定义了两个输出源:一个是INFO级别日志输出到控制台、一个是ERROR级别的日志输出到文件。
```properties
log4j.rootLogger=INFO, stdout, file
# 控制台输出
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} [%-20t] %c:%L %m%n
# 文件输出
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File=log/test.log
log4j.appender.file.DatePattern='.'yyyy-MM-dd
log4j.appender.file.Append=true
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} [%-20t] %c:%L %m%n
# 不同日志级别输出到不同目标
log4j.logger.com.example=DEBUG, stdout
log4j.logger.org.example=ERROR, file
```
在这个配置中,我们首先指定整个系统的日志级别为INFO级别,然后使用两个appender,一个是ConsoleAppender输出到控制台,一个是DailyRollingFileAppender输出到文件。
在最后,我们又使用logger进行进一步的分级设置,指定了不同的LOG级别对不同的appender进行输出。
- 输出到不同的文件
在这个例子中,我们定义了三个输出源:一个是INFO级别的日志输出到test.log中、一个是ERROR级别的日志输出到error.log中、一个是DEBUG级别的日志输出到debug.log中。
```
log4j.rootLogger=DEBUG, stdout
# INFO级别日志记录
log4j.appender.info.file=log/test.log
log4j.appender.info=org.apache.log4j.DailyRollingFileAppender
log4j.appender.info.DatePattern='.'yyyy-MM-dd
log4j.appender.info.layout=org.apache.log4j.PatternLayout
log4j.appender.info.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} [%-20t] %c:%L %m%n
log4j.logger.com.example=INFO, info
# ERROR级别日志记录
log4j.appender.error.file=log/error.log
log4j.appender.error=org.apache.log4j.DailyRollingFileAppender
log4j.appender.error.DatePattern='.'yyyy-MM-dd
log4j.appender.error.layout=org.apache.log4j.PatternLayout
log4j.appender.error.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} [%-20t] %c:%L %m%n
log4j.logger.org.example=ERROR, error
# DEBUG级别日志记录
log4j.appender.debug.file=log/debug.log
log4j.appender.debug=org.apache.log4j.DailyRollingFileAppender
log4j.appender.debug.DatePattern='.'yyyy-MM-dd
log4j.appender.debug.layout=org.apache.log4j.PatternLayout
log4j.appender.debug.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} [%-20t] %c:%L %m%n
log4j.logger.com.example.dao=DEBUG, debug
```
在这个配置中,我们首先指定整个系统的日志级别为DEBUG级别,然后使用三个appender,分别输出到不同的文件中。
接着,我们使用logger进行进一步的分级设置,指定了不同日志级别输出到不同的输出源。
例如,com.example包下的DEBUG级别的日志输出到debug.log中。
三、总结
通过上面两个例子,我们可以看到如何使用log4j.properties来对系统中的日志输出进行配置。
在使用中,我们首先需要了解Log4j的基本原理和语法规则。
接着,我们需要根据实际的需求,针对不同的输出目标和不同的日志级别,配置log4j.properties文件。
最后,在输出日志时,我们通过logger进行日志的调用,Log4j再根据配置文件进行日志的输出。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解log4j.properties的简单配置和使用 - Python技术站