@Slf4j配置不同的日志输出到不同的文件

开发中,应对不同的业务场景,需要把日志分批保存,或分业务记录,这种时候就需要把日志输出到不同的文件中,@Slf4j注解式支持这样的配置的,具体的实现如下

logback-spring.xml配置文件中添加如下配置

图片[1] - @Slf4j配置不同的日志输出到不同的文件 - 技术SOLO
具体代码如下

  <appender name="MY-LOG-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!--日志文件输出的文件名 -->
            <FileNamePattern>../logs/other/log/mylog-%d{yyyy-MM-dd}_%i.log</FileNamePattern>
            <!--日志文件保留天数 -->
            <MaxHistory>365</MaxHistory>
            <maxFileSize>10MB</maxFileSize>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %class:%L - %msg%n</pattern>
        </encoder>
    </appender>

<logger name="mylog" level="INFO" additivity="false">
    <appender-ref ref="MY-LOG-FILE"/>
</logger>

在业务代码中引用

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/** 业务日志打印 */
private static Logger mylog = LoggerFactory.getLogger("mylog");
  • 其中getLogger("mylog")中的mylog,需要与配置文件中的<logger>中的name属性对应,名字可以自定义

在需要输出日志的地方使用

mylog.info("日志信息");
mylog.warn("日志信息");
mylog.debug("日志信息");
mylog.error("日志信息");
© 版权声明
THE END
喜欢就支持一下吧
点赞0打赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容