簡體   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