日志输出两次 spring初始化两次

来源:互联网 发布:java map 泛型定义 编辑:程序博客网 时间:2024/06/10 03:26

碰到一个 spring初始化日志打印两次的情况。。查看类的实例又是一样的。
查看原因是是log的日志没配置对 输出了两次的日志。

<?xml version="1.0" encoding="UTF-8"?><Configuration status="info">    <Properties>        <Property name="filePath">../logs/log.log</Property>    </Properties>    <Appenders>        <!--这个输出控制台的配置 -->        <Console name="console" target="SYSTEM_OUT">            <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch) -->            <ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] [%-5p]  %c {%F:%L} - %m%n"/>        </Console>        <File name="logFile" fileName="${filePath}">            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] [%-5p]  %c {%F:%L} - %m%n"/>        </File>    </Appenders>    <Loggers>        <logger name="com.test" level="DEBUG">            <AppenderRef ref="console"/>            <AppenderRef ref="logFile"/>        </logger>        <Root level="info">            <AppenderRef ref="console"/>            <AppenderRef ref="logFile"/>        </Root>    </Loggers></Configuration>

原因是Root 和com.test都实现了两个appender 导致日志输出两次

应在com.test的接口上增加additivity=”false”

<?xml version="1.0" encoding="UTF-8"?><Configuration status="info">    <Properties>        <Property name="filePath">../logs/log.log</Property>    </Properties>    <Appenders>        <!--这个输出控制台的配置 -->        <Console name="console" target="SYSTEM_OUT">            <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch) -->            <ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] [%-5p]  %c {%F:%L} - %m%n"/>        </Console>        <File name="logFile" fileName="${filePath}">            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] [%-5p]  %c {%F:%L} - %m%n"/>        </File>    </Appenders>    <Loggers>        <logger name="com.test" level="DEBUG" additivity="false">            <AppenderRef ref="console"/>            <AppenderRef ref="logFile"/>        </logger>        <Root level="info">            <AppenderRef ref="console"/>            <AppenderRef ref="logFile"/>        </Root>    </Loggers></Configuration>

这样就完美了。

原创粉丝点击