spring整合LOG4J2日志
POM文件
<!-- Log Begin -->
<slf4j.version>1.7.24</slf4j.version>
<log4j2.version>2.8.2</log4j2.version>
<jcl.over.version>1.7.6</jcl.over.version>
<jul.over.version>1.7.6</jul.over.version>
<log4j12.api.version>2.8.2</log4j12.api.version>
<!-- Log End -->
<!-- Logger start -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>${log4j2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>${log4j2.version}</version>
</dependency>
<dependency> <!-- 桥接:告诉Slf4j使用Log4j2 -->
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>${log4j2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-web</artifactId>
<version>${log4j2.version}</version>
</dependency>
<dependency> <!-- 桥接:jcl,不是升级不需要 -->
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>${jcl.over.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId><!-- 桥接:jul,不是升级不需要 -->
<artifactId>jul-to-slf4j</artifactId>
<version>${jul.over.version}</version>
<scope>runtime</scope>
</dependency>
<dependency><!--适配log4j 1.x,不是升级不需要 -->
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-1.2-api</artifactId>
<version>${log4j12.api.version}</version>
</dependency>
<!-- Logger end -->
配置文件 log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="OFF" monitorInterval="30">
<properties>
<property name="appName">XXXXX</property>
<property name="LOG_HOME">${sys:catalina.home}/logs/XXXXX/${appName}</property>
<!--<property name="LOG_HOME">d:/test/logs/XXXXX/${appName}</property>-->
<property name="errorfilepath">${LOG_HOME}/error.log</property>
<property name="layout">%d{yyyy/MM/dd HH:mm:ss.SSS} [%t] %-5p %c{1.} %l %F - %m%n</property>
<property name="layout2">%d{yyyy/MM/dd HH:mm:ss.SSS} %-5level %c{3.} %L %M - %msg%xEx%n</property>
<property name="layout3">%d{yyyy/MM/dd HH:mm:ss.sss} %-5level %class{36} %L %M - %msg%xEx%n</property>
</properties>
<!-- 定义所有的appenders (输出目的地) -->
<appenders>
<!-- 控制台输出的配置 -->
<Console name="Console" target="SYSTEM_OUT">
<!-- 控制台只输出level级别及以上的信息(onMatch),其他的直接拒绝(onMismatch) ,设置后可屏蔽具体logger的设定-->
<ThresholdFilter level="debug" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout pattern="${layout2}"/>
</Console>
<!-- 文件打印所有信息,适合临时测试使用 ,append="true" 指定追加内容到文件 -->
<File name="log" fileName="${LOG_HOME}/test-temp.log" append="false">
<PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
</File>
<!--fileName:当前日期文件的位置和名称
filePattern:指定当发生rolling时,文件的转移和重命名规则
SizeBasedTriggeringPlicy:指定文件体积大于size,出发rolling
DefaultRolloverStrategy:指定最多保存的文件数,默认每个文件夹7个
TimeBasedTriggeringPolicy:该配置需要和filePattern使用%d{yyyy-MM-dd HH-mm}-%i,最小粒度是分钟,则单位为分钟,表示每分钟生成一个新文件
注意:可以通过ThresholdFilter过滤日志级别,可以实现按照不同的日志级别保存到不同的文件中
-->
<RollingFile name="RollingFile" fileName="${LOG_HOME}/app.log"
filePattern="${LOG_HOME}/app.log.%d{yyyy-MM-dd-HH}-%i.log.gz">
<!--filePattern="${errorfilepath}/$${date:yyyy-MM}/app-%d{yyyy-MM-dd HH-mm}-%i.log.gz" -->
<ThresholdFilter level="debug" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout pattern="${layout}"/>
<Policies>
<SizeBasedTriggeringPolicy size="10MB"/>
<!-- 每小时文件rollover -->
<CronTriggeringPolicy schedule="0 0 * * * ?"/>
<!--TimeBasedTriggeringPolicy表示按照时间间隔来进行日志文件的滚动,间隔单位可以是分钟、小时,具体需要根据filePattern的格式来进行判别;-->
<!--例如filePattern="e:/app-%d{yyyy-MM-dd_HH-mm}-%i.out",则表示mm(分钟)为单位;-->
<!--<TimeBasedTriggeringPolicy interval="1" modulate="true"/>-->
</Policies>
<!-- DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件,这里设置了20 -->
<DefaultRolloverStrategy max="20">
<!-- 删除策略,basePath表示根文件夹,maxDepth表示路径深度,0表示根目录自身,默认1,仅仅根目录下的文件可访问,删除无法恢复请慎重-->
<Delete basePath="${LOG_HOME}" maxDepth="0">
<IfFileName glob="app.log*.log.gz"/>
<!-- 删除30天前的数据-->
<ifLastModified age="30d"/>
<!-- 访问文件数,保留最新10个文件 exceeds表示删除的文件数量阈值-->
<IfAccumulatedFileCount exceeds="10"/>
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
</appenders>
<loggers>
<root level="INFO">
<appender-ref ref="Console"/>
<appender-ref ref="RollingFile"/>
</root>
<logger name="org.springframework" level="ERROR" additivity="false" >
<appender-ref ref="Console"/>
</logger>
<logger name="com.baomidou.mybatisplus" level="INFO" additivity="false" >
<appender-ref ref="Console"/>
</logger>
<logger name="log4j.logger.com.ibatis" level="DEBUG" additivity="false" >
<appender-ref ref="Console"/>
</logger>
<logger name="com.XXXXX" level="DEBUG" additivity="false" >
<appender-ref ref="Console"/>
</logger>
<logger name="com.XXXXX.XXXXXX" level="DEBUG" additivity="false" >
<appender-ref ref="Console"/>
</logger>
<logger name="com.XXXXX.XXXXX.XXXXX" level="DEBUG" additivity="false" >
<appender-ref ref="Console"/>
</logger>
<!--additivity=false 表示不往上继承root,因此没有打印root策略的日志-->
<!--<logger name="org.springframework.core" level="INFO" additivity="false">-->
<!--<appender-ref ref="Console"/>-->
<!--</logger>-->
</loggers>
</configuration>
spring整合LOG4J2日志的更多相关文章
- Spring Boot Log4j2 日志学习
简介 Java 中比较常用的日志工具类,有: Log4j. SLF4j. Commons-logging(简称jcl). Logback. Log4j2(Log4j 升级版). Jdk Logging ...
- Springboot整合log4j2日志全解
目录 常用日志框架 日志门面slf4j 为什么选用log4j2 整合步骤 引入Jar包 配置文件 配置文件模版 配置参数简介 Log4j2配置详解 简单使用 使用lombok工具简化创建Logger类 ...
- SpringBoot 实现整合log4j2日志
关于日志级别 共有8个级别,按照从低到高为:All < Trace < Debug < Info < Warn < Error < Fatal < OFF. ...
- SpringBoot整合log4j2进行日志配置及防坑指南
写在前面 最近项目经理要求将原先项目中的日志配置logBack,修改为log4j2,据说是log4j2性能更优于logback,具体快多少,网上有说快10多倍,看来还是很快的,于是新的一波挑战又开始了 ...
- spring boot自定义log4j2日志文件
背景:因为从 spring boot 1.4开始的版本就要用log4j2 了,支持的格式有json和xml两种格式,此次实践主要使用的是xml的格式定义日志说明. spring boot 1.5.8. ...
- jersey2 整合 spring + hibernate + log4j2
整合 spring jersey2 官方还未正式支持 spring4, 但网上有好多支持方案,折腾了一圈后,还是用了 spring3; pom 添加以下依赖配置 <!-- Spring --&g ...
- spring boot整合slf4j-log日志
原文地址:https://blog.csdn.net/u011271894/article/details/75735915 版权声明:本文为博主原创文章,未经博主允许不得转载. https://bl ...
- Spring学习总结(六)——Spring整合MyBatis完整示例
为了梳理前面学习的内容<Spring整合MyBatis(Maven+MySQL)一>与<Spring整合MyBatis(Maven+MySQL)二>,做一个完整的示例完成一个简 ...
- Spring学习总结(五)——Spring整合MyBatis(Maven+MySQL)一
MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中. 使用这个类库中的类, Spring 将会加载必要的MyBatis工厂类和 session 类. 这个类库 ...
随机推荐
- linux安装tomcat后启动报错Cannot find ./catalina.sh的解决方法
linux安装tomcat后启动报错: Cannot find ./catalina.shThe file is absent or does not have execute permissionT ...
- javascript学习五---OOP
面向对象:JavaScript的所有数据都可以看成对象 JavaScript的面向对象编程和大多数其他语言如Java.C#的面向对象编程都不太一样.如果你熟悉Java或C#,很好,你一定明白面向对象的 ...
- 构建前端第12篇之---在Vue中对组件,变量,函数的全局引入
张燕涛写于2020-01-16 星期two 本篇还是源于import和export的使用,昨天看es6入门 和MDN文档,大体上用法了解了,但今天看ElementUI源码的时候,看到 //src/in ...
- canvas的globalCompositeOperation属性
在开发过程中遇到过类似刮刮卡的效果,就是涂抹时变透明,显示出下方的内容,做法思路简单说一下问题和解决方案: 分为2层,最下面一层是内容,比如'一等奖',上面一层用一个canvas遮挡住,画布本来是透明 ...
- Java学习常用链接
最全的Jenkins插件开发教程 最最最全的Jenkins插件开发教程_邪恶八进制-CSDN博客_jenkins插件开发 代理FQ工具Shadow socks https://www.blog-chi ...
- ThinkPHP5 SQL注入漏洞 && 敏感信息泄露
访问看到用户名被显示了 http://192.168.49.2/index.php?ids[]=1&ids[]=2 访问http://your-ip/index.php?ids[0,updat ...
- 如何在 NetCore 中定义我们自己的JSON配置文件的管理器。
一.介绍 微软已经对外提供了新的平台,我们叫它们是 Net Core 平台,这个平台和 Net Framework 平台有本质的区别,这个最本质的区别就是微软的C#代码可以跨平台了.当前我们主流的3大 ...
- noi linux 2.0 体验
一.起因 下午,我打开 noi 官网准备报名 csp j/s,一看官网展板:"noi linux 2.0 发布" 我就兴奋了起来.(9 月 1 日起开始使用, 也就意味着 csp ...
- Cell Reports | 上海瑞金医院糜坚青等揭示组蛋白酰化/乙酰化修饰比率调控BRD4基因组分布
景杰生物 | 报道 组蛋白翻译后修饰,被认为构成一类超越基因序列的"组蛋白密码",控制着遗传信息的组织层次及其在染色质层面的解读.组蛋白赖氨酸乙酰化是研究最早的一类组蛋白修饰, ...
- 网安日记④之搭建域环境(domain)并且配置域
搭建域环境(domain)并且配置域 什么是域 域就是将多台计算机在逻辑上组织到一起,进行集中管理,也就是创建在域控制器上的组,将组的账户信息保存在活动目录中.域组可以用来控制域内任何一台计算机资源的 ...