spring boot log4j2配置
Posted virgosnail
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring boot log4j2配置相关的知识,希望对你有一定的参考价值。
【传送门】:log4j官网配置文件详解
1. 排除 spring boot 自带的 spring-boot-starter-logging 依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <exclusions> <!-- remove log4j --> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency>
2. 添加log4j依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency> <!--如果配置文件为yaml格式,则还需添加如下依赖--> <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-yaml</artifactId> <version>2.9.7</version> </dependency>
3. log4j.xml配置
<?xml version="1.0" encoding="UTF-8"?> <!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL --> <!-- status log4j2 内部日志级别 --> <configuration status="INFO"> <!-- 全局参数 --> <Properties> <Property name="pattern">[%p] %d{yyyy-MM-dd HH:mm:ss,SSS} [%t] %l : %m%n</Property> <Property name="logHome">logs</Property> <Property name="displayName">monitor-server</Property> </Properties> <Appenders> <Console name="console" target="SYSTEM_OUT" follow="true"> <PatternLayout> <pattern>${pattern}</pattern> </PatternLayout> </Console> <!-- 文件 每次运行程序会自动清空,由append属性决定 --> <File name="error" fileName="${loghome}/${displayName}_error.log" append="false"> <!-- 指定error 级别的日志 --> <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/> <PatternLayout> <pattern>${pattern}</pattern> </PatternLayout> </File> <!-- 滚动文件 --> <RollingFile name="rollingFile" fileName="${logHome}/${displayName}.log" filePattern="${logHome}/${displayName}_%d{yyyy-MM-dd}.log"> <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/> <PatternLayout> <pattern>${pattern}</pattern> </PatternLayout> <!-- 按大小划分 --> <Policies> <!-- 每隔1天生成一个日志--> <TimeBasedTriggeringPolicy interval="1"/> <!-- 每隔10MB生成一个日志--> <SizeBasedTriggeringPolicy size="10 MB"/> </Policies> <DefaultRolloverStrategy max="20"/> </RollingFile> </Appenders> <Loggers> <Logger name="org.springframework" level="WARN" additivity="false"> <AppenderRef ref="console"/> </Logger> <Logger name="com.skd.server" level="info" additivity="false"> <AppenderRef ref="console"></AppenderRef> <AppenderRef ref="error"></AppenderRef> <AppenderRef ref="rollingFile"></AppenderRef> </Logger> <!--日志信息输出的最低级别--> <Root level="debug"> </Root> </Loggers> </configuration>
4. 日志格式配置
PatternLayout:
- %m 输出代码中指定的消息;
- %M 输出打印该条日志的方法名;
- %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL;
- %r 输出自应用启动到输出该log信息耗费的毫秒数;
- %c 输出所属的类目,通常就是所在类的全名;
- %t 输出产生该日志事件的线程名;
- %n 输出一个回车换行符,Windows平台为"rn”,Unix平台为"n”;
- %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy-MM-dd HH:mm:ss,SSS},输出类似:2002-10-18 22:10:28,921;
- %l 输出日志事件的发生位置,及在代码中的行数;
以上是关于spring boot log4j2配置的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Spring Boot 中使用 Log4J2 复合配置
如何在 Spring Boot 应用程序中指定 Log4j2 配置文件
Spring Boot 应用系列 4 -- Spring Boot 2 整合log4j2