阅读 93

SpringBoot使用Lombok输出日志到指定的Appender中

Lombok插件内置有 @Slf4j@Log4j / @Log4j2 两种日志注解,注解后可直接调用 log.info()、log.warn()等方法输出信息到日志,

但是我的项目中配置了两个不同的日志输出Appender

 1     <Appenders>
 2         <Console name="Console" target="SYSTEM_OUT">
 3             <PatternLayout pattern="%d{HH:mm:ss} [%t] %-5p %c{1}:%L - %msg%n" />
 4         Console>
 5         
 6         <RollingFile name="RollingFile" fileName="${baseDir}/logs/${date:yyyy-MM-dd}.log" 
 7             filePattern="${baseDir}/logs/${date:yyyy-MM}/${date:YYYY-MM-dd}-fargo.log.zip">
 8             <PatternLayout pattern="%d{YYYY-MM-dd HH:mm:ss} %-5p %c{1}:%L - %msg%n" />
 9             <Policies>
10                 <OnStartupTriggeringPolicy />
11                 <SizeBasedTriggeringPolicy size="10 MB" />
12             Policies>
13             <DefaultRolloverStrategy max="20" />
14         RollingFile>
15         
16         <RollingFile name="SMSRollingFile" fileName="${baseDir}/logs/${date:yyyy-MM-dd}-sms.log" 
17             filePattern="${baseDir}/logs/${date:yyyy-MM}/sms/${date:YYYY-MM-dd}-sms-fargo.log.zip">
18             <PatternLayout pattern="%d{YYYY-MM-dd HH:mm:ss} [%-5p] %msg%n" />
19             <Policies>
20                 <OnStartupTriggeringPolicy />
21                 <SizeBasedTriggeringPolicy size="10 MB" />
22             Policies>
23             <DefaultRolloverStrategy max="20" />
24         RollingFile>
25     Appenders>
1     <Loggers>
2         <Root level="INFO">
3             <AppenderRef ref="RollingFile" />
4         Root>
5         <Logger name="SMSLogger" additivity="false" level="INFO">
6             <appender-ref ref="SMSRollingFile" level="INFO"/>
7         Logger>
8     Loggers>

 

在不使用Lombok的情况下一般是通过调用 LoggerFactory 的getLogger()方法来获取对应 Appender 的对象,

Logger logger = LoggerFactory.getLogger("SMSLogger");

 

使用Lombok插件后可直接调用,但是如果需要输出到指定的 Appender 中的话,需要将 @Slf4j 或 @Log4j / @Log4j2 中 topic 参数的值设置为对应的Logger的name值。

比如,我要将日志通过SMSLogger输出,那么就应该做如下配置

    @Log4j2(topic = "SMSLogger")
    static class TestLog {
        public static void test() {
            Logger logger = LoggerFactory.getLogger("SMSLogger");
            log.error("测试Lombok日志注解 - Lombok");
            logger.error("测试Lombok日志注解 - LoggerFactory");
        }
    }

 

查看对应文件2021-08-14-sms.log

 

 

成功输出

原文:https://www.cnblogs.com/hy-foundway/p/15140918.html

文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐