我有一個文件,它根據傳遞給它的命令行參數將SMS發送到不同的移動網絡。沃達豐,3網絡,T-Mobile公司,O2等..所以,當arguement傳遞Java單獨的日誌文件單獨的程序參數
$Run SMSDaemon 3Network // sends sms to 3 networks's mobile users
$Run SMSDaemon Vodafone // sends sms to Vodafone mobile users
$Run SMSDaemon TMobile // sends sms to TMobile mobile users
$Run SMSDaemon O2 // sends sms to O2 mobile users
現在,我想創建一個單獨的網絡單獨的日誌文件,這樣我可以有日誌信息,調試消息根據移動網絡分開。
因爲,我只有一個文件SMSDaemon我已經嘗試了以下,但它不寫任何文件。它只寫入已在log4j.properties文件中定義的文件。所以,我很困惑在log4j.properties中寫什麼和在這個java文件中寫什麼?
public static void main(String[] args) {
if(args.length != 1 { return;}
networkUnique = args[0];
setLogProps(networkUnique);
//other codes and in setLogProps method
private static void setLogProps(String networkUnique)
{
log = Logger.getLogger(networkUnique);
Properties logprops=new Properties();
logprops.setProperty("log4j.appender.file","org.apache.log4j.FileAppender");
logprops.setProperty("log4j.appender.file.maxFileSize","300MB");
logprops.setProperty("log4j.appender.file.maxBackupIndex","100");
logprops.setProperty("log4j.appender.file.File","/etc/sms/"+networkUnique+".log");
logprops.setProperty("log4j.appender.file.threshold","debug");
logprops.setProperty("log4j.appender.file.layout","org.apache.log4j.PatternLayout");
logprops.setProperty("log4j.appender.file.layout.ConversionPattern","%d [%t] %-5p [%-35F : %-25M : %-6L] %-C -%m%n");
logprops.setProperty("log4j.appender.stdout","org.apache.log4j.FileAppender");
PropertyConfigurator.configure(logprops);
log.info("Log message Starting for "+ networkUnique);
}
在寫入log4j.properties文件後。所有的日誌都寫到network.log文件中,這個文件是在這個屬性中定義的,這不符合我的要求。我需要在SMSDaemon setLogProps方法中定義單獨的網絡日誌。
# Define the root logger with appender file
#log = /etc/sms/
log4j.rootLogger = info, FILE
# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
#log4j.appender.FILE.File=${log}/network.log
# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n
請建議。
在此先感謝。
對不起,它沒有幫助!嘗試與log4j.appender.TMobile,任何其他建議! –
它給了我錯誤沒有appender可以找到記錄器TMobile ...任何想法它是如何來的? –
該消息表示未找到log4j.properties文件。您嘗試使用控制檯appender,如果它有效,請嘗試更正log4j.xml或log4j.properties。這可能有所幫助 - http://www.coderanch.com/t/63230/open-source/log-log-WARN-N-appenders – Ved