参考:
http://logging.apache.org/log4j/2.x/manual/configuration.html
log4j2相对于之前的配置信息的操作,少了properties的文件的配置操作(如果还使用log4j1.x的log4j.properties,则会报错,ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console),现在的配置文件只有json或者是xml形式的文件配置。
log4j2的配置文件的放置路径比较的随意,只要自己建立的项目工程可以把配置信息读取就可以了。
log4j2定义了8个级别的log(除去OFF和ALL,可以说分为6个级别),优先级从高到低依次为:OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、 ALL。如果将log level设置在某一个级别上,那么比此级别优先级高的log都能打印出来。例如,如果设置优先级为WARN,那么OFF、FATAL、ERROR、WARN 4个级别的log能正常输出,而INFO、DEBUG、TRACE、 ALL级别的log则会被忽略。
src/main/resources/log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="debug">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{1}:%L - %msg%n" />
</Console>
<RollingFile name="RollingFile" filename="debug.log"
filepattern="%d{yyyy-MM-dd-HH}-debug.log">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{1}:%L - %msg%n" />
<Policies>
<SizeBasedTriggeringPolicy size="100 MB" />
<TimeBasedTriggeringPolicy modulate="true" interval="24"/>
</Policies>
<DefaultRolloverStrategy max="20" />
</RollingFile>
</Appenders>
<Loggers>
<Root level="debug">
<AppenderRef ref="Console" />
<AppenderRef ref="RollingFile" />
</Root>
</Loggers>
</Configuration>
pom.xml
<project
......
<dependencies>
......
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.5</version>
</dependency>
......
</dependencies>
<build>
......
<resources>
......
<resource>
<!-- auto copy to target/classes e.g. log4j.properties -->
<directory>src/main/resources</directory>
</resource>
</resources>
</build>
</project>