ShutdownHook的日志没有正常输出log4j2
Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() { @Override
public void run() {
for (int i = 0; i < 100; i++) {
log.error("ShutdownHook-2-" + i);
try {
Thread.sleep(100);
} catch (Exception e) {log.error("addShutdownHook Error", e);}
}
}
}, "shutdown-2"));
kill -pid 之后log的内容没有输出
原因是:log4j也有ShutdownHook的程序,并且提前执行了,导致提前关闭了日志。
log4j可以配置不开启ShutdownHook。不过测试没有成功
<?xml version="1.0" encoding="UTF-8"?><Configuration status="INFO" shutdownHook="disable">
可以使用文件输出证明代码有执行
Files.write(Paths.get("/opt/log/a.txt"), ("ShutdownHook-2-11" ).getBytes(), StandardOpenOption.APPEND);
以上是 ShutdownHook的日志没有正常输出log4j2 的全部内容, 来源链接: utcz.com/z/512324.html