Log4J

2010-11-22 19 views
5

का उपयोग कर एक ही कक्षा में अलग लॉगर मैं एक ही कक्षा के भीतर से उत्पन्न विशिष्ट संदेशों को अलग से लॉग इन करना चाहता हूं। तो, मैं एक ही कक्षा के भीतर 2 अलग-अलग प्रकार के लॉगर्स कैसे बना सकता हूं। /** लॉगर -: वर्तमान में, गुण फ़ाइलLog4J

तरह
log4j.rootCategory=DEBUG, O 

# Stdout 
log4j.appender.O=org.apache.log4j.ConsoleAppender 
log4j.appender.O.layout=org.apache.log4j.PatternLayout 
log4j.appender.O.layout.ConversionPattern=[%d{ISO8601}]%5p%6.6r[%t]%x - %C.%M(%F:%L) - %m%n 

# File 
log4j.appender.MESSAGE=org.apache.log4j.RollingFileAppender 
log4j.appender.MESSAGE.File=target/logs/messages.log 
# Control the maximum log file size 
log4j.appender.MESSAGE.MaxFileSize=1000KB 
# Archive log files (one backup file here) 
log4j.appender.MESSAGE.MaxBackupIndex=100 
log4j.appender.MESSAGE.layout=org.apache.log4j.PatternLayout 
log4j.appender.MESSAGE.layout.ConversionPattern=[%d{ISO8601}]%5p%6.6r[%t]%x - %C.%M   (%  F:% L) - %m%n 
log4j.appender.MESSAGE. 

log4j.category.failedMessagesLog=INFO, MESSAGE 

मैं के रूप में मेरे कोड में प्रवेश का उपयोग कर रहा लग रहा है। */

Logger logger = Logger.getLogger(MyClass.class); 
Logger msgLogger = Logger.getLogger("MESSAGE"); 

परीक्षण करने पर, मैंने बनाया एक खाली लॉग फ़ाइल (messages.log) मिलता है। कोई सुझाव ??

उत्तर

1
log4j.rootCategory=DEBUG, O 

log4j.appender.O=org.apache.log4j.ConsoleAppender 
log4j.appender.O.layout=org.apache.log4j.PatternLayout 
log4j.appender.O.layout.ConversionPattern=[%d{ISO8601}]%5p%6.6r[%t]%x - %C.%M(%F:%L) - %m%n 

log4j.appender.MESSAGE=org.apache.log4j.RollingFileAppender 
log4j.appender.MESSAGE.File=target/logs/messages.log 
log4j.appender.MESSAGE.MaxFileSize=1000KB 
log4j.appender.MESSAGE.MaxBackupIndex=100 
log4j.appender.MESSAGE.layout=org.apache.log4j.PatternLayout 
log4j.appender.MESSAGE.layout.ConversionPattern=[%d{ISO8601}]%5p%6.6r[%t]%x - %C.%M 


log4j.appender.**MESSAGE2**=org.apache.log4j.RollingFileAppender 
log4j.appender.**MESSAGE2**.File=target/logs/**messages2**.log 
log4j.appender.**MESSAGE2**.MaxFileSize=1000KB 
log4j.appender.**MESSAGE2**.MaxBackupIndex=100 
log4j.appender.**MESSAGE2**.layout=org.apache.log4j.PatternLayout 
log4j.appender.**MESSAGE2**.layout.ConversionPattern=[%d{ISO8601}]%5p%6.6r[%t]%x - %C.%M  

log4j.category.failedMessagesLog=INFO, MESSAGE , **MESSAGE2** 

"failedMessagesLog" जावा फ़ाइल जो (INFO,MESSAGE, MESSAGE1) appender को लागू किया जाता है। मैंने अभी मौजूदा RollingFileAppender का पुन: उपयोग किया है। आप किसी भी अन्य एपेंडर (फ़ाइल एपेंडर की तरह) का उपयोग कर सकते हैं।

आपको सही कक्षा का नाम Logger logger = Logger.getLogger(MyClass.class) private static final Logger log = Logger.getLogger(**failedMessagesLog.class**) में बदला जाना चाहिए;

सुनिश्चित करें कि आप यानी

import **org.apache.log4j.Logger**; 
7

विभिन्न नामों के साथ दो लॉगर्स बनाएं। आप उन्हें प्रति नाम आधार पर कॉन्फ़िगर कर सकते हैं। ऐसा करने का एक आसान तरीका है कि आप कक्षा के नाम पर प्रत्यय जोड़ना चाहते हैं। जैसे

Log log1 = LogFactory.getLog(getClass().getName()+".log1"); 
Log log2 = LogFactory.getLog(getClass().getName()+".log2"); 

आपकी गुण फ़ाइल में।

log4j.category.mypackage.myclass.log1=INFO, MESSAGE1 
log4j.category.mypackage.myclass.log2=INFO, MESSAGE2 
+0

मैं के रूप में मेरे कोड में लॉगिन कर रहा हूं log4j की लॉगिंग उपयोग कर रहे हैं: –

+0

लॉगर failedMessagelogger = Logger.getLogger (myclass.class); –

+0

स्थिर संदर्भ में लॉगर बनाने के लिए प्रयास करें: लॉगर लॉग 1 = लॉगर.getLogger (MyClass.class.getName() + "log1"); – Darron

 संबंधित मुद्दे