最近项目中 用了spring boot 在搞日志的时候发现 log4j.properties部分生效 一部分没生效,比如 日志文件 死活都没有
后来发现 pom.xml中 我们用的是 log4j2
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!--去掉内置的log-->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
然后没办法 于是 只能 用 log4j2了
在 spring boot 的 yml中配置:
logging:
config: classpath:log4j2.xml
然后 在 resources 目录下 创建 log4j2.xml ps:和application文件同一级 。
log4j2.xml文件配置如下:
<?xml version="1.0" encoding="UTF-8" ?>
<configuration status="WARN">
<!--全局参数-->
<Properties>
<Property name="pattern">%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n</Property>
</Properties>
<appenders>
<Console name="console" target="SYSTEM_OUT">
<JsonLayout/> <!--使用json格式输出-->
</Console>
</appenders>
<Loggers>
<Root level="DEBUG">
<AppenderRef ref="console"></AppenderRef>
<AppenderRef ref="rolling_file"></AppenderRef>
<AppenderRef ref="file"></AppenderRef>
</Root>
<!--只将com.kk.springboot.demo写到文件-->
<!--<Logger name="com.example.demo" level="debug">-->
<!--<AppenderRef ref="file"></AppenderRef>-->
<!--</Logger>-->
</Loggers>
<Appenders>
<Console name="console" target="SYSTEM_OUT" follow="true">
<!--控制台只输出level及以上级别的信息-->
<ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout>
<Pattern>${pattern}</Pattern>
</PatternLayout>
</Console>
<!-- 同一来源的Appender可以定义多个RollingFile,定义按天存储日志 -->
<RollingFile name="rolling_file"
fileName="/var/log/tomcat8/cboard.log"
filePattern="/var/log/tomcat8/%d{yyyy-MM-dd}.log">
<ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout>
<Pattern>${pattern}</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1"/>
<!--<SizeBasedTriggeringPolicy size="1 KB"/>-->
</Policies>
</RollingFile>
<File name="file" fileName="/var/log/tomcat8/error.log">
<!--<!–控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)–>-->
<ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout>
<Pattern>${pattern}</Pattern>
</PatternLayout>
</File>
</Appenders>
</configuration>
然后发现 pom.xml文件引入的其他 jar包 由于版本问题 不能使用 log4j2.xml 于是只能把原先的 log4j.properties文件加上。
spring boot 日志搞定。