有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    LogManager.getLogger("GLOBAL")在读取log4j配置并初始化它时创建日志文件。因此,当您在Configurator.setLevel("GLOBAL", Level.OFF);时,您无法阻止它这样做。在国际海事组织,你有两个选择:

    1)优雅方式:通过在运行时传递配置来初始化代码中的日志管理器LogManager.getLogManager().readConfiguration。您可以参考here了解详细的实现

    2)丑陋方式:设置级别时删除日志文件。关