2011-09-22 17 views
9

मैं फ़ाइल में लॉग इन करते समय आउटपुट को कंसोल पर अक्षम करना चाहता हूं। जब मैं का उपयोग करमैं log4j.rootLogger को आउटपुट कैसे अक्षम कर सकता हूं?

log4j.rootLogger=info,stdout 

log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.Target=System.out 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L --- %m%n 

log4j.category.FileLog=info,R 
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.R.File=E:\\temp\\FileLog 
log4j.appender.R.Append = true 
log4j.appender.R.DatePattern='.'yyyy-MM-dd'.log' 
log4j.appender.R.layout=org.apache.log4j.PatternLayout 
log4j.appender.R.layout.ConversionPattern=%m[%d{MM-dd HH:mm:ss}]%n 

:

Logger.getLogger("FileLog").info("LogText-FileLog"); 

भी stdout को यह लॉग प्रिंट, मैं इसे कैसे निष्क्रिय कर सकते हैं नीचे config फाइल देखते हैं?

उत्तर

12

आप उपयोग कर सकते हैं `log4j.additivity.FileLog = false, कि 'ध्वज' आप देख रहे हैं है।

official log4j documentation से

:

लकड़हारा सी का एक लॉग बयान के उत्पादन में सभी appenders सी और अपने पूर्वजों में के लिए जाना जाएगा। यह "एपेंडर योजकता" शब्द का अर्थ है।

हालांकि, अगर लकड़हारा सी के एक पूर्वज, पी कहते हैं, additivity ध्वज गलत पर सेट है, तो सी उत्पादन सी ​​और अपने पूर्वजों तक और पी सहित, लेकिन नहीं appenders में सभी appenders लिए निर्देशित किया जाएगा पी

लॉगर्स के किसी भी पूर्वजों में डिफ़ॉल्ट रूप से उनके additivity ध्वज को सही पर सेट किया गया है।

अपने रूट लॉगर से ("अन्य उत्तरों में प्रस्तावित) से" stdout "को हटाने का समाधान नहीं हो सकता है, क्योंकि मुझे लगता है कि आप अभी भी कुछ मामलों में उस कंसोल लॉग में रुचि रखते हैं।

+0

करने के लिए धन्यवाद @Guido गार्सिया, मैंने कोशिश की 'log4j.additivity.R = FALSE' और' log4j.app ender.R.additivity = false', लेकिन – Koerr

+0

'log4j.additivity.FileLog = false' काम नहीं कर सकता, फिर से धन्यवाद :) – Koerr

-1

रूट लॉगर से "stdout" निकालें। यह कंसोल पर लिखना बंद कर देगा। यहाँ

log4j.rootLogger=info,stdout 

से

5

निकालें stdout करने के लिए:

log4j.rootLogger=info 
0

मैं सही प्रश्न का उपयोगकर्ता प्रदान की का जवाब पता नहीं है, लेकिन निम्न log4j कोड के साथ एक समान समस्या का सामना:

log4j.rootCategory=INFO, console 
log4j.appender.console=org.apache.log4j.ConsoleAppender 
log4j.appender.console.target=System.err 
log4j.appender.console.layout=org.apache.log4j.PatternLayout 
log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n 

मैं

बदलकर कंसोल से सभी प्रवेश करने लाइनों से हटाया
log4j.rootCategory=INFO, console 

log4j.rootCategory=OFF, console 
संबंधित मुद्दे