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

回到顶部