log4j2 的使用

log4j2 是 log4j 的升级,更为方便,更为强大。

log4j2.xml 的配置以及 log4j2的依赖包使用
log4j2 并没有其他的依赖包,只是在使用log4j的情况下,需要别的进行桥接 例如slf4j

log4j-core-xx.jar
log4j-api-xx.jar

当使用slf4j这个模块的时候,slf4j 不是具体的日志解决方案,它只服务于各种日志系统。
它是用于日志系统的简单门面,允许最终用户在部署其应用的时使用其所希望的日志系统。
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version></version>
</dependency>

当要用slf4j作为门面 使用log4j2 的话,还需要有额外的依赖
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.7</version>
</dependency>

以上log4j2的 maven依赖完毕。

log4j2的配置文件 默认为log4j2.xml <当然它支持 xml,json等格式的配置类型>
默认放置在 classpath的根目录下 即可
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="debug" monitorInterval="30">
<Properties>
<Property name="ptn">[%d{yyyy-MM-dd HH:mm:ss,SSS Z}] %-5p %c{1}.%t - %m%n</Property>
</Properties>

<appenders>
<Console name="console" target="SYSTEM_OUT">
<ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY" />
<PatternLayout pattern="${ptn}" />
</Console>
<RollingFile name="file" fileName="log/app.log"
filePattern="log/$${date:yyyy-MM}/app-%d{yyyyMMdd}-%i.log.gz">
<PatternLayout pattern="${ptn}" />
<SizeBasedTriggeringPolicy size="10MB" />
<DefaultRolloverStrategy max="20" />
</RollingFile>
<Async name="async">
<AppenderRef ref="file" />
</Async>
<RollingFile name="security-access" fileName="log/security-access.log"
filePattern="log/$${date:yyyy-MM}/security-access-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss,SSS Z}] - %m%n" />
<SizeBasedTriggeringPolicy size="10MB" />
<DefaultRolloverStrategy max="20" />
</RollingFile>

</appenders>

<!-- debug模式下,将com.skywares.dao下的mybatis sql语句打印到控制台 -->
<loggers>
<logger name="com.skywares.dao" level="debug" />
<root level="debug">
<appender-ref ref="console" />
</root>
</loggers>

</Configuration>

参考链接:

http://logging.apache.org/log4j/2.x/maven-artifacts.html

http://www.cnblogs.com/guogangj/p/4031571.html

原文地址:https://www.cnblogs.com/FakerWang/p/ad.html