簡體   English   中英

在log4j中創建多個日志導致奇怪的結果

[英]Creating multiple logs in log4j causing weird effects

我正在嘗試在Log4j中創建多個日志,但是我面臨一個奇怪的問題。 這是log4j.properties和實現它的代碼。

# Define the root logger with appender file
log4j.rootLogger = DEBUG, FILEALL

# Define the file appender
log4j.appender.FILEALL=org.apache.log4j.FileAppender
log4j.appender.FILEALL.File=${logfile.name}
# Define the layout for file appender
log4j.appender.FILEALL.layout=org.apache.log4j.HTMLLayout

#log4j.appender.FILEMAIN=org.apache.log4j.FileAppender
#log4j.appender.FILEMAIN.File=${logfilemain.name}
#log4j.appender.FILEMAIN.layout=org.apache.log4j.HTMLLayout

我在運行兩個語句時都添加了該語句,並刪除了原始語句

log4j.rootLogger = DEBUG, FILEALL , FILEMAIN

這是java代碼:

System.setProperty("logfile.name", savePath1);
// System.setProperty("logfilemain.name", savePath1);
logger = Logger.getLogger(HarishLog.class.getName());
PropertyConfigurator.configure("log4j.properties");

在我進行一次日志記錄之前,代碼可以正常工作,但是一旦我在屬性或javafile中啟用第二次日志記錄的設置,就什么也沒有發生。

此外,我無法在

log4j.appender.FILEALL.File=${logfile.name}

它僅適用於logfile.namelogfilea.name ,如果我在javacode和properties文件夾中都對其進行更改,則不適用於任何其他名稱。 為什么是這樣???

謝謝

這對我有用:

log4j.rootLogger = DEBUG, FILEALL, FILEMAIN

log4j.appender.FILEALL=org.apache.log4j.FileAppender
log4j.appender.FILEALL.File=${logfile.name}
log4j.appender.FILEALL.layout=org.apache.log4j.HTMLLayout

log4j.appender.FILEMAIN=org.apache.log4j.FileAppender
log4j.appender.FILEMAIN.File=${logfilemain.name}
log4j.appender.FILEMAIN.layout=org.apache.log4j.HTMLLayout

import org.apache.log4j.Logger;

public class LogTest {
    public static void main(final String... args) {
        System.setProperty("logfile.name", "logall.txt");
        System.setProperty("logfilemain.name", "logmain.txt");
        Logger logger = Logger.getLogger(LogTest.class.getName());
        logger.info("hello");
    }
}

如果仍有問題,請嘗試添加:

log4j.debug = true

到log4j.properties的開頭,並檢查輸出消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM