使用 Spring Boot 默认的日志框架 Logback。
所有这些 POM 依赖的好处在于为开发 Spring 应用提供了一个良好的基础。Spring Boot 所选择的第三方库是经过考虑的,是比较适合产品开发的选择。但是 Spring Boot 也提供了不同的选项,比如日志框架可以用 Logback 或 Log4j,应用服务器可以用 Tomcat 或 Jetty。
http://www.ibm.com/developerworks/cn/java/j-lo-spring-boot/
spring boot里有颜色日志的实现
当在shell里启动spring boot应用时,会发现它的logger输出是有颜色的,这个特性很有意思。
可以通过这个设置来关闭:
spring.output.ansi.enabled=false
原理是通过AnsiOutputApplicationListener ,这个来获取这个配置,然后设置logback在输出时,加了一个 ColorConverter,通过org.springframework.boot.ansi.AnsiOutput ,对一些字段进行了渲染。
获取进程的PID
ApplicationPid,可以获取PID。
private String getPid() {
try {
String jvmName = ManagementFactory.getRuntimeMXBean().getName();
return jvmName.split("@")[0];
}
catch (Throwable ex) {
return null;
}
}
包装Logger类
spring boot里自己包装了一套logger,支持java, log4j, log4j2, logback,以后有需要自己包装logger时,可以参考这个。
在org.springframework.boot.logging包下面。
获取原始启动的main函数
通过堆栈里获取的方式,判断main函数,找到原始启动的main函数。
private Class<?> deduceMainApplicationClass() {
try {
StackTraceElement[] stackTrace = new RuntimeException().getStackTrace();
for (StackTraceElement stackTraceElement : stackTrace) {
if ("main".equals(stackTraceElement.getMethodName())) {
return Class.forName(stackTraceElement.getClassName());
}
}
}
catch (ClassNotFoundException ex) {
// Swallow and continue
}
return null;
}
https://yq.aliyun.com/articles/6056?spm=5176.100240.searchblog.20.i049N1#2
http://www.cnblogs.com/wangdaijun/p/5446924.html