时间:2021-05-20
本文介绍了SpringBoot集成slf4j+log4j2的示例代码,分享给大家,具体如下:
Maven依赖
如果其它依赖有log日志冲突,可以加入下面配置:
<exclusions> <exclusion> <groupId>log4j</groupId> <artifactId>*</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>*</artifactId> </exclusion> <exclusion> <groupId>org.apache.logging.log4j</groupId> <artifactId>*</artifactId> </exclusion></exclusions>log4j2.xml
放在resources目录下
<?xml version="1.0" encoding="UTF-8"?><!-- 6个优先级从高到低依次为:OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、 ALL。 如果设置优先级为WARN,那么OFF、FATAL、ERROR、WARN 4个级别的log能正常输出 设置为OFF 表示不记录log4j2本身的日志, --><!-- status:用来指定log4j本身的打印日志级别,monitorInterval:指定log4j自动重新配置的监测间隔时间 --><configuration status="INFO" monitorInterval="30"> <!-- 自己设置属性,后面通过${}来访问 --><!-- <properties> <property name="LOG_HOME">${web:rootDir}/logs</property> </properties>--> <appenders> <!--Appender 1. 输出到Console控制台,指定输出格式和过滤器等级为INFO --> <Console name="Console" target="SYSTEM_OUT"> <!--ThresholdFilter指定日志消息的输出最低层次--> <ThresholdFilter level="ALL" onMatch="ACCEPT" onMismatch="DENY"/> <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/> </Console> <!--Appender 2. 输出到滚动保存的文件, 触发保存日志文件的条件是日志文件大于3KB,只保存最新的10个日志--> <File name="allLog" fileName="${LOG_HOME}/all.log"> <ThresholdFilter level="ALL" onMatch="ACCEPT" onMismatch="DENY"/> <PatternLayout charset="UTF-8" pattern="%d{yyyy.MM.dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/> </File> <!--Appender 3. 输出到滚动保存的文件, 触发保存日志文件的条件是日志文件大于3KB,只保存最新的10个日志--> <RollingFile name="debugLog" fileName="${LOG_HOME}/debug.log" filePattern="${log.path}/debug-%i.log"> <ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/> <PatternLayout charset="UTF-8" pattern="[%-5level][%d{yyyy-MM-dd HH:mm:ss}][%F:%L] - %m%n"/> <SizeBasedTriggeringPolicy size="3KB"/> <!-- DefaultRolloverStrategy 中的参数max,可以限制 SizeBasedTriggeringPolicy中size超出后,只保留max个存档--> <DefaultRolloverStrategy max="10"/> </RollingFile> <!--Appender 4. 输出到滚动保存的文件, 触发保存日志文件的条件是每分钟第一次的日志事件。ERROR日志是按分钟产生日志 --> <RollingFile name="errorLog" fileName="${LOG_HOME}/error.log" filePattern="${log.path}/error-%d{yyyy-MM-dd_HH-mm}.log"> <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/> <PatternLayout charset="UTF-8" pattern="[%-5level][%d{yyyy-MM-dd HH:mm:ss}][%C:%F:%L] - %m%n"/> <TimeBasedTriggeringPolicy/> </RollingFile> <RollingFile name="RollingFile" fileName="${LOG_HOME}/rar.log" filePattern="${LOG_HOME}/$${date:yyyy-MM}/${FILE_NAME}-%d{MM-dd-yyyy}-%i.log.gz"> <PatternLayout charset="UTF-8" pattern="%d{yyyy-MM-dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/> <!--日志文件最大值 第二天压缩--> <Policies> <TimeBasedTriggeringPolicy/> <SizeBasedTriggeringPolicy size="10 MB"/> </Policies> </RollingFile> </appenders> <!--root 默认加载--> <loggers> <root level="DEBUG"> <appender-ref ref="Console"/> <!--<appender-ref ref="allLog"/>--> <!--<appender-ref ref="debugLog"/>--> <!--<appender-ref ref="errorLog"/>--> <!--<appender-ref ref="RollingFile"/>--> </root> </loggers></configuration>LogTest.java
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
1、需要的jar如下:!--log4j-->log4jlog4j1.2.17org.slf4jslf4j-api1.7.4org.slf4jslf4j-log4
slf4j和log4j区别是: 1、slf4j是日志的接口只定义了一些方法而没有去实现,和commons-logging一样。 2、而log4j是具体的实现
前言SpringBoot底层使用的是slf4j+logback来进行日志记录把其他common-logging、log4j、java.util.logging转
注:下文中的“桥接”、“转调”、“绑定”等词基本都是同一个概念。log4j-over-slf4j和slf4j-log4j12是跟java日志系统相关的两个jar
Springboot默认集成的就是logback,logback相对来说是优秀于log4j的,log4j2也是参考了logback的设计。自定义