springboot整合log4j2自定义日志文件名
前端时间升级框架的时候,将logback调整为log4j2的时候,发现log4j2配置文件没法使用Springboot的配置文件,究其原因,发现log4j2加载配置文件早于Springboot配置文件的加载,通过阅读log4j2中文文档发现,可以采用系统变量的方式,以服务名来命名日志文件
1、自定义SpringApplicationBuilder启动类
public class MyBuilder{
/**
* 自定义启动方法,用户新增系统属性appName,log4j2配置文件中用于各个模块日志文件名的区别
* @author xuqian
*
*/
public MyBuilder(Class<?> sources, String[] args) {
if(sources!=null) {
String appName = sources.getName();
appName = appName.substring(appName.lastIndexOf(".")+1);
System.setProperty("appName",appName);
}
new SpringApplicationBuilder(sources).run(args);
}
}
2、修改log4j2配置文件
3、使用自定义启动类启动服务
@SpringBootApplication
public class TestServer {
public static void main( String[] args ) {
new MyBuilder(TestServer .class, args);
}
}
欢迎各位大神积极留言交流