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
最新文章
- Jenkins构建时报错:No Space left on device
- 【BZOJ-3555】企鹅QQ 字符串Hash
- python 获得当前路径
- 导入DXF文件
- 修改Android签名证书keystore的密码、别名alias以及别名密码
- BZOJ3560 : DZY Loves Math V
- 【转】Android自动化测试之MonkeyRunner录制和回放脚本(四)
- 15个提高编程技巧的JavaScript工具
- 数据库备份和恢复秩序的关系(周围环境:Microsoft SQL Server 2008 R2)
- scala中的view bound与context bound
- python 正则表达式汇总
- nodejs 复制、移动文件
- Koala Framework
- Struts2从头到脚--学习笔记(自认为比较重要的)
- iOS之 Category 属性 的理解
- 流处理与消息队列------《Designing Data-Intensive Applications》读书笔记16
- (转)如何在Eclipse中查看JDK类库的源代码
- Hibernate入门(三)
- CLion使用OpenCV(Ubuntu 18.04)
- 2018.12.22 spoj7258 Lexicographical Substring Search(后缀自动机)
热门文章
- pandas shift
- pandas设置值、更改值
- matplotlib绘图
- semantic segmentation with deeplearning
- BZOJ2822[AHOI2012]树屋阶梯——卡特兰数+高精度
- Lights inside a 3d Grid UVA - 11605(概率)
- 覆盖的面积 HDU - 1255(扫描线求面积交)
- day27 多态 多继承 接口类 抽象类
- Oracle Client安装报错:引用数据不可用于验证此操作系统分发的先决条件
- AGC 016 F - Games on DAG(状压dp)