繁体   English   中英

即使Level为OFF也创建了log4j2日志文件吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM