SpringBoot+LogBack实现不同业务输出到不同日志文件

1.首先了解Logback基本的XML配置文件:

logback-xml配置

2.配置xml

1配置appender

<appender name="paysJrnl-log" class="ch.qos.logback.core.rolling.RollingFileAppender">
	<!--输出的日志文件路径  ${kont.log.path}是我配置文件里定义的,详情查看上面的xml配置链接-->
    <file>${kont.log.path}/paysJrnl-log-${appName}.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
      <fileNamePattern>${kont.log.path}/paysJrnl-log-${appName}-%d{yyyyMMdd}.%i.log</fileNamePattern>
      <maxFileSize>20MB</maxFileSize>
    </rollingPolicy>
    <encoder>
    <!--日志的输出格式-->
      <pattern>%d %-5level [%-18.18thread] - [%X{requestId:-SYSTEM}]: %msg%n</pattern>
    </encoder>
  </appender>

配置logger

<logger name="paysJrnl" level="INFO" additivity="false">
    <appender-ref ref="paysJrnl-log"/>
  </logger>

3.打印日志

在需要加日志的类中定义Logger

Logger logger2 = LoggerFactory.getLogger("paysJrnl");
//后面参数为配置的logger的name值

使用log打印日志

logger2.info(paysJrnl.toString()); // 用户报表日志

查找log日志成功,并且里面也有日志

在这里插入图片描述
ps:用测试类或者junit测试不行,可能是我没有注入配置文件,感觉没有走配置,建议测试时直接启动项目,在项目随便找个能执行到的地方测试。
如果需要拆分的业务太多,可以创建工具类

// 日志工具类LoggerUtils
public class LoggerUtils {
    public static <T> Logger Logger(Class<T> clazz) {
        return LoggerFactory.getLogger(clazz);
    }
 
    /**
     * 打印到指定的文件下
     *
     * @param desc 日志文件名称
     * @return
     */
    public static Logger Logger(LogFileName desc) {
        return LoggerFactory.getLogger(desc.getLogFileName());
    }
//   枚举LogFileName
public enum LogFileName {
 
    SYS_LOG("sysLog"),
    BIZ_LOG("bizLog");
 
    private String logFileName;
 
    LogFileName(String fileName) {
        this.logFileName = fileName;
    }
 
    public String getLogFileName() {
        return logFileName;
    }
 
    public void setLogFileName(String logFileName) {
        this.logFileName = logFileName;
    }
 
    public static LogFileName getAwardTypeEnum(String value) {
        LogFileName[] arr = values();
        for (LogFileName item : arr) {
            if (null != item && !item.logFileName.equals("")) {
                return item;
            }
        }
        return null;
    }
}
// 测试
public class Application {
 
    private static final Logger sys_Log = LoggerUtils.Logger(LogFileName.SYS_LOG);
    private static final Logger biz_Log = LoggerUtils.Logger(LogFileName.BIZ_LOG);
 
    public static void main(String[] args) {
        sys_Log.info("我是系统日志");
        biz_Log.info("我是业务日志");
    }
}
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值