1.首先了解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("我是业务日志");
}
}