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