目前是各个服务模块打到不同的日志文件中保存,这次是同一模块,将想输出的不同的信息,打印到不同的日志中去记录
首先在输出日志的位置新增
private final Logger logger = LoggerFactory.getLogger(getClass());
private Logger loggerInterceptor = LoggerFactory.getLogger("outToFile");
复制
之后两个不同的Logger对象,分别输出信息
接下来是修改日志配置文件,原有的logback.xml是:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 控制台输出日志 -->
<appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} %thread > %-5level %logger{35} - %m%n</pattern>
</encoder>
</appender>
<!-- 日志输出 到文件-->
<appender name="File" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>./logs/ptmsbm/%d{yyyy-MM-dd}.log.zip</fileNamePattern>
<maxHistory>270</maxHistory><!--日志最大保存时间-->
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} > %-5level %X{X-B3-TraceId:-} ${springAppName:-} %logger{35} - %m%n</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="ERROR"/>
<logger name="org.springframework.cache" level="DEBUG"/>
<logger name="org.apache.tomcat" level="ERROR"/>
<logger name="org.eclipse" level="ERROR"/>
<logger name="org.apache.commons.beanutils" level="ERROR"/>
<logger name="org.foundation" level="DEBUG"/>
<logger name="org.taikang.ptms" level="DEBUG"/>
<root level="INFO">
<appender-ref ref="Console"/>
<appender-ref ref="File"/>
</root>
</configuration>
复制
只需要在configuration中新增刚才定义的logger和对应的输出日志路径即可:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 控制台输出日志 -->
<appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} %thread > %-5level %logger{35} - %m%n</pattern>
</encoder>
</appender>
<!-- 日志输出 到文件-->
<appender name="File" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>./logs/ptmsbm/%d{yyyy-MM-dd}.log.zip</fileNamePattern>
<maxHistory>270</maxHistory><!--日志最大保存时间-->
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} > %-5level %X{X-B3-TraceId:-} ${springAppName:-} %logger{35} - %m%n</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="ERROR"/>
<logger name="org.springframework.cache" level="DEBUG"/>
<logger name="org.apache.tomcat" level="ERROR"/>
<logger name="org.eclipse" level="ERROR"/>
<logger name="org.apache.commons.beanutils" level="ERROR"/>
<logger name="org.foundation" level="DEBUG"/>
<logger name="org.taikang.ptms" level="DEBUG"/>
<root level="INFO">
<appender-ref ref="Console"/>
<appender-ref ref="File"/>
</root>
<property name="logData" value="E:/Filez" >
<statusListener class="ch.qos.logback.core.status.NopStatusListener" >
<!-- 日志输出 到文件-->
<appender name="LOG_INTERCEPTOR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${logData}/log-interceptor/%d{yyyy-MM-dd}.log.zip</fileNamePattern>
<maxHistory>270</maxHistory><!--日志最大保存时间-->
</rollingPolicy>
<encoder>
<pattern>
%-20(%d{yyyy-MMM-dd HH:mm:ss} [%thread]) %-5level %logger{80} [%line] -%msg%n
</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!--输出到指定日志文件-->
<logger name="outToFile" level="INFO" additivity="false">
<appender-ref ref="LOG_INTERCEPTOR"/>
</logger>
</configuration>
复制
这里测试是打到本地,运行后为:只打印了想要的日志,其余的logger打印到原有日志
文章转载自琢磨先生DataBase,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。