聊聊springboot中整合log4g2的问题
程序员文章站
2022-06-25 15:42:34
1.导入jarspringboot默认是用logback的日志框架的,所以需要排除logback,不然会出现jar依赖冲突的报错。 <...
1.导入jar
springboot默认是用logback的日志框架的,所以需要排除logback,不然会出现jar依赖冲突的报错。
<dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-web</artifactid> <exclusions><!-- 去掉springboot默认配置 --> <exclusion> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-logging</artifactid> </exclusion> </exclusions> </dependency> <dependency> <!-- 引入log4j2依赖 --> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-log4j2</artifactid> </dependency>
2.配置文件
1.如果自定义了文件名,需要在application.yml中配置
2.默认名log4j2-spring.xml,就省下了在application.yml中配置
在applicaiton.yaml中添加配置
logging: #日志文件 config: classpath:log4g2.xml level: com.alibaba.nacos.client.config.impl: warn cn.jay.repository: trace file: #${file.name} 后期可以改成${spring.application.name} path: /log/${file.name} file: name: dome
在config中配置log4g2.xml文件
<?xml version="1.0" encoding="utf-8"?> <!-- status="off",可以去掉,它的含义为是否记录log4j2本身的event信息,默认是off --> <configuration status="off" monitorinterval="60"> <!-- <properties>--> <!-- <property name="projectname">--> <!-- riiot--> <!-- </property>--> <!-- </properties>--> <appenders> <!-- 开发环境用 --> <console name="debug_console" target="system_out"> <patternlayout pattern="[%d{yyyy-mm-dd hh:mm:ss.sss} %-5p] [%traceid] [%t] {%c}-%m%n"/> <filters> <thresholdfilter level="debug"/> <thresholdfilter level="info" onmatch="deny" onmismatch="neutral"/> </filters> </console> <console name="console" target="system_out"> <patternlayout pattern="[%d{yyyy-mm-dd hh:mm:ss.sss} %-5p] [%traceid] [%t] {%c}-%m%n"/> <filters> <thresholdfilter level="info"/> </filters> </console> <!-- 输出日志到文件 每天一个文件(error-fatal级别) --> <rollingrandomaccessfile name="apperrordailyrollingfile" filename="${sys:log_path}/apperror.log" append="true" bufferedio="false" buffersize="256" filepattern="${sys:log_path}/apperror.log.%d{yyyy-mm-dd}.log"> <patternlayout pattern="[%d{yyyy-mm-dd hh:mm:ss.sss} %-5p] [%traceid] [%t] {%c}-%m%n" /> <filters> <thresholdfilter level="error"/> </filters> <policies> <timebasedtriggeringpolicy modulate="true" interval="1"/> </policies> </rollingrandomaccessfile> <!-- 输出日志到文件 每天一个文件(warn级别) --> <rollingrandomaccessfile name="appwarndailyrollingfile" filename="${sys:log_path}/appwarn.log" append="true" bufferedio="true" buffersize="10240" immediateflush="false" filepattern="${sys:log_path}/appwarn.log.%d{yyyy-mm-dd}.log"> <patternlayout pattern="[%d{yyyy-mm-dd hh:mm:ss.sss} %-5p] [%traceid] [%t] {%c}-%m%n" /> <filters> <thresholdfilter level="warn"/> <thresholdfilter level="error" onmatch="deny" onmismatch="neutral"/> </filters> <policies> <timebasedtriggeringpolicy modulate="true" interval="1"/> </policies> </rollingrandomaccessfile> <!-- 输出日志到文件 每天一个文件(info级别) --> <rollingrandomaccessfile name="appinfodailyrollingfile" filename="${sys:log_path}/appaccess.log" append="true" bufferedio="true" buffersize="409600" immediateflush="false" filepattern="${sys:log_path}/appaccess.log.%d{yyyy-mm-dd}.log"> <patternlayout pattern="[%d{yyyy-mm-dd hh:mm:ss.sss} %-5p] [%traceid] [%t] {%c}-%m%n" /> <filters> <thresholdfilter level="info"/> <thresholdfilter level="warn" onmatch="deny" onmismatch="neutral"/> </filters> <policies> <timebasedtriggeringpolicy modulate="true" interval="1"/> </policies> </rollingrandomaccessfile> <!-- 输出日志到文件 每天一个文件(info级别) --> <rollingrandomaccessfile name="dbaccessdailyrollingfile" filename="${sys:log_path}/dbaccess.log" append="true" bufferedio="true" buffersize="409600" immediateflush="false" filepattern="${sys:log_path}/dbaccess.log.%d{yyyy-mm-dd}.log"> <patternlayout pattern="[%d{yyyy-mm-dd hh:mm:ss.sss} %-5p] [%traceid] [%t] {%c}-%m%n" /> <filters> <thresholdfilter level="info"/> <thresholdfilter level="warn" onmatch="deny" onmismatch="neutral"/> </filters> <policies> <timebasedtriggeringpolicy modulate="true" interval="1"/> </policies> </rollingrandomaccessfile> <!-- 输出日志到文件 每天一个文件(error级别) --> <rollingrandomaccessfile name="dberrordailyrollingfile" filename="${sys:log_path}/dberror.log" append="true" bufferedio="false" buffersize="256" filepattern="${sys:log_path}/dberror.log.%d{yyyy-mm-dd}.log"> <patternlayout pattern="[%d{yyyy-mm-dd hh:mm:ss.sss} %-5p] [%traceid] [%t] {%c}-%m%n" /> <filters> <thresholdfilter level="warn"/> </filters> <policies> <timebasedtriggeringpolicy modulate="true" interval="1"/> </policies> </rollingrandomaccessfile> <!-- 输出日志到文件 每天一个文件(error级别) --> <rollingrandomaccessfile name="syserrordailyrollingfile" filename="${sys:log_path}/syserror.log" append="true" bufferedio="false" filepattern="${sys:log_path}/syserror.log.%d{yyyy-mm-dd}.log"> <patternlayout pattern="[%d{yyyy-mm-dd hh:mm:ss.sss} %-5p] [%traceid] [%t] {%c}-%m%n" /> <filters> <thresholdfilter level="warn"/> </filters> <policies> <timebasedtriggeringpolicy modulate="true" interval="1"/> </policies> </rollingrandomaccessfile> <!-- 启动日志 --> <rollingrandomaccessfile name="bootlog" filename="${sys:log_path}/boot.log" append="false" bufferedio="false" filepattern="${sys:log_path}/boot.log.%d{yyyy-mm-dd}.log"> <patternlayout pattern="[%d{yyyy-mm-dd hh:mm:ss.sss} %-5p] [%traceid] [%t] {%c}-%m%n" /> <filters> <thresholdfilter level="info"/> </filters> <policies> <timebasedtriggeringpolicy modulate="true" interval="1"/> </policies> </rollingrandomaccessfile> <!-- <kafka name="synckafka" topic="logs" syncsend="false"> <patternlayout pattern="[%d{yyyy-mm-dd hh:mm:ss.sss} %-5p] [%traceid] [riiot] [${jar.name}] [%x{ip}] [dev] [%t] {%c}-%m"/> <property name="bootstrap.servers">192.168.1.49:9092</property> <property name="acks">0</property> <property name="compression.type">gzip</property> <property name="max.block.ms">10000</property> <filters> <thresholdfilter level="info"/> </filters> </kafka> <!– 异步发送kafka –> <async name="kafka" buffersize="512" blocking="false"> <appenderref ref="synckafka"/> </async> <kafka name="kafkaerrlog" topic="errlogtopic" syncsend="false"> <patternlayout pattern="[%d{yyyy-mm-dd hh:mm:ss.sss} %-5p] [%traceid] [riiot] [${jar.name}] [%x{ip}] [dev] [%t] {%c}-%m"/> <property name="bootstrap.servers">192.168.1.49:9092</property> <property name="acks">0</property> <property name="compression.type">gzip</property> <filters> <thresholdfilter level="error"/> </filters> </kafka> <!– 异步发送kafka –> <async name="asynckafkaerrlog" buffersize="512" blocking="false"> <appenderref ref="kafkaerrlog"/> </async> --> </appenders> <loggers> <!-- 只把包名是com.cmsr的日志输出到文件 --> <logger name="com.cmsr" additivity="false" level="debug"> <appender-ref ref="apperrordailyrollingfile" /> <appender-ref ref="appwarndailyrollingfile" /> <appender-ref ref="appinfodailyrollingfile" /> <appender-ref ref="console" /> <appender-ref ref="debug_console" /> </logger> <!-- 只把包名是com.cmsr.sicp.common.mybatis(db正常执行,异常分别写到不同的log文件)的日志输出到文件 --> <logger name="com.cmsr.sicp.common.mybatis" additivity="false" level="debug"> <appender-ref ref="dbaccessdailyrollingfile" /> <appender-ref ref="dberrordailyrollingfile" /> <appender-ref ref="console" /> </logger> <!-- 过滤springframework输出,提高启动速度 (生产环境中需要整体删除)--> <logger name="org.springframework" additivity="false" level="warn"> <appender-ref ref="console" /> </logger> <!-- 启动日志单独输出 --> <logger name="com.cmsr.launcher" additivity="false" level="info"> <appender-ref ref="bootlog" /> <appender-ref ref="console" /> </logger> <!-- 定义全局。其他包的日志只输出到控制台,不输出到日志文件 --> <root level="error"> <appender-ref ref="syserrordailyrollingfile" /> <appender-ref ref="console" /> </root> </loggers> </configuration>
到此这篇关于springboot中整合log4g2的文章就介绍到这了,更多相关springboot整合log4g2内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
推荐阅读
-
springboot整合高版本druid数据源(1.1.20+),解决监控页打不开的问题
-
聊聊Vue 中 title 的动态修改问题
-
SpringBoot中的定时任务与Quartz的整合
-
详细聊聊SpringBoot中动态切换数据源的方法
-
SpringBoot与tk.mybatis整合遇到的问题
-
Springboot 整合通用mapper和pagehelper展示分页数据的问题(附github源码)
-
Springboot2.X版本整合Mybatis时yml文件的配置问题
-
解决Nginx与Tomcat整合下无法加载JSP中静态资源的问题
-
从几个方面聊聊页面重构中的一些问题
-
详解IDEA中SpringBoot整合Servlet三大组件的过程