java log4j2日志文件是否在关闭级别时创建?
我有一个全局记录器,它在一些类中使用,这样我就可以在单个文件中记录所有内容。所有的工作都很好,但是我希望能够从用户界面禁用记录器。我尝试将级别设置为OFF,如下图所示,这会停止日志记录,但仍会创建一个空日志文件(我正在使用记录器的file Appender)
是否有任何简单的方法可以避免在关闭级别时创建日志文件
public class Main {
public static Logger LOGGER = LogManager.getLogger("GLOBAL");
public static void main(String[] args) {
Configurator.setLevel("GLOBAL", Level.OFF);
//Rest of code
}
}
# 1 楼答案
LogManager.getLogger("GLOBAL")
在读取log4j配置并初始化它时创建日志文件。因此,当您在Configurator.setLevel("GLOBAL", Level.OFF);
时,您无法阻止它这样做。在国际海事组织,你有两个选择:1)优雅方式:通过在运行时传递配置来初始化代码中的日志管理器
LogManager.getLogManager().readConfiguration
。您可以参考here了解详细的实现2)丑陋方式:设置级别时删除日志文件。关