[英]log4j2 log file created even when Level is OFF?
我有一个用于几个类的全局记录器,以便可以将所有内容记录在一个文件中。 一切正常,但是我希望能够从UI禁用Logger。 我尝试将“级别”设置为OFF,如下所示,这将停止日志记录,但仍创建一个空的日志文件(我在记录器中使用File Appender)。
有什么简单的方法可以避免在Level为OFF时创建日志文件?
public class Main {
public static Logger LOGGER = LogManager.getLogger("GLOBAL");
public static void main(String[] args) {
Configurator.setLevel("GLOBAL", Level.OFF);
//Rest of code
}
}
LogManager.getLogger("GLOBAL")
创建日志文件,同时读取log4j配置并对其进行初始化。 因此,当您位于Configurator.setLevel("GLOBAL", Level.OFF);
时,您无法阻止它执行此操作Configurator.setLevel("GLOBAL", Level.OFF);
。 IMO,您有两种选择:
1) 优雅的方法 :通过在运行时传递配置LogManager.getLogManager().readConfiguration
来初始化代码中的LogManager.getLogManager().readConfiguration
。 您可以参考这里的详细实现。
2) 丑陋的方式 :设置LEVEL.OFF时删除日志文件
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.