我的應用程序使用記錄有兩種方式.... 1)程序化2)的log4j.xml 我有兩個(1使用程序化和其他使用的log4j.xml中創建日誌文件)位置。的Log4j:有趣的問題,需要解決
程序化的方式(多了一個屬性文件中,所有的東西都提像日誌級別和所有....讓say..thorugh這...文件越來越created..name爲「SAS_VP。日誌「):
Enumeration loggers = Logger.getRootLogger().getLoggerRepository().getCurrentLoggers();
......
Logger temp = (Logger)iter.next();
temp.setLevel(level);
的log4j.xml
<appender name="FILE" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="/LOGS/SAM/SAM_VJ.log"/>
<param name="Threshold" value="DEBUG"/>
<param name="MaxFileSize" value="10000KB"/>
<param name="MaxBackupIndex" value="10"/>
<param name="Append" value="false"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{dd MMM yyyy HH:mm:ss,SSS} [%t] %5p [%F(% M):%L] %m%n"/>
</layout>
</appender>
<root>
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</root>
問題:
日誌級別,我設定編程覆蓋 log4j.xml.Like中的log4j.xml日誌級別設置的級別「調試」,並通過編程我已經設置了級別爲「錯誤」,那麼文件(SAM_VJ.log),它由創建log4j.xml只包含ERROR級別日誌。
如何解決這個問題...我想...我的兩個日誌記錄(編程和log4j)應該是獨立的。
是否有任何的log4j中...如果我已經設置了一個包「com.sas」的日誌級別爲「調試」,那麼沒有人可以修改...像可變類型
<logger name="com.sam">
<priority value="DEBUG"/>
</logger>
尋找你的建議....
** @ Mark Bramnik:** **我的屬性文件:** ###日誌級別。 ###值{ALARM,ERROR,WARNING,TRACE,PRINT} 1.1.1 =錯誤
###日誌目錄1.1.2 =/LOGS/SAM/** Java代碼:**枚舉記錄器= Logger.getRootLogger() .getLoggerRepository()getCurrentLoggers(); //它獲取所有記錄器
...... Logger temp =(Logger)iter.next(); temp.setLevel(電平); //設置的級別來自屬性文件 – VJS 2011-12-27 07:01:43
** log4j.xml:** 我希望包「com.sas」下的代碼總是按照log4j.xml中提到的日誌級別來發送 \t <優先級值=」 DEBUG「/> –
VJS
2011-12-27 07:04:26
**問題:** 這裏通過Java代碼....記錄器爲 」com.sas「 也被modified.I希望出現這種情況通過java代碼,我不應該設置記錄器級別「com.sas」...我如何將此傳遞給java代碼....我不能看到任何API,我可以通過它獲取記錄器並在log4j中指定。 如果我以這種方式獲得log4j.xml中指定的日誌記錄級別不應該得到改變.....我認爲這不可能,因爲您提到了...它通過java代碼獲取覆蓋。 ... **任何解決方案... ** – VJS 2011-12-27 07:04:48