Java程序日志信息在终端命令行里弹出
如果你使用就像如下命令
java -jar project.jar >/dev/null &
让你的Java程序在Linux上后台执行,但是你在干别的事情的时候偶尔你发现你的程序错误日志突然弹出,就像下面这样:
其原因是你在你的代码中使用了如下方式输出程序日志信息:
// 1 不要这样打印异常
try {
new URL(url);
} catch (MalformedURLException e) {
e.printStackTrace();
}
// 2 不要这样打印日志
System.out.println("hello world!");
Java程序中一定不要以e.printStackTrace();这种方式输出程序日志,否则你的异常信息会在你所启动程序的用户的终端命令行里面随时弹出来,且无法记录这些异常到日志文件中。
在log4j2中,你可以将异常就像下面这样打印在日志中:
try {
new URL(url);
} catch (MalformedURLException e) {
logger.error("URL格式不正确", e);
return;
}