spring boot 日志log4j2

最近项目中  用了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">
            <!--&lt;!&ndash;控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)&ndash;&gt;-->
            <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout>
                <Pattern>${pattern}</Pattern>
            </PatternLayout>
        </File>
    </Appenders>
</configuration>

然后发现 pom.xml文件引入的其他 jar包 由于版本问题 不能使用 log4j2.xml 于是只能把原先的 log4j.properties文件加上。 

spring boot  日志搞定。 

猜你喜欢

转载自blog.csdn.net/QAQ_666666/article/details/83573319