2012-01-10 8 views
0

私は2つのロガーを持っています。 1つはファイルに追加され、もう1つはsmtpロガーです。ファイルアペンダーにのみログを記録するエラーメッセージを記録するクラス(以下、MyClass)があります。これはできますか?他のロガーに影響を与えずに、cetainクラス/パッケージ上のappenderのロギングしきい値を設定するにはどうすればよいですか?

私は運がないとこれを追加しようとしました。

log4j.logger.com.test.MyClass=OFF, email_logger 

ここは私のlog4j.propertiesです。

log4j.logger.com.test=INFO, file_logger, email_logger 
log4j.logger.com.test.MyClass=OFF, email_logger 

log4j.additivity.com.test=false 

log4j.appender.file_logger=org.apache.log4j.RollingFileAppender 
log4j.appender.file_logger.file=/path/to/file.log 
log4j.appender.file_logger.MaxFileSize=5MB 
log4j.appender.file_logger.threshold=INFO 
log4j.appender.file_logger.MaxBackupIndex=5 
log4j.appender.file_logger.layout=org.apache.log4j.PatternLayout 
log4j.appender.file_logger.layout.ConversionPattern=%d [%t] %-5p %c{1} - %m%n 

log4j.appender.email_logger=org.apache.log4j.net.SMTPAppender 
log4j.appender.email_logger.threshold=ERROR 
log4j.appender.email_logger.SMTPHost=mtahost 
log4j.appender.email_logger.BufferSize=512 
log4j.appender.email_logger.subject=System Error 
[email protected] 
[email protected] 
log4j.appender.email_logger.layout=org.apache.log4j.PatternLayout 
log4j.appender.email_logger.layout.ConversionPattern=%d [%t] %-5p %c{1} - %m%n 

答えて

0

私はそれを理解しました。私はそれについて間違って考えていた。上記の設定では、実際にMyClassのすべてのログを完全にオフにしていました。私がやりたかったのは、MyClassから電子メールアペンダーを削除して、ファイルアペンダーを残しておくことでした。また、同じメッセージがベース(log4j.logger.com.test)ロガーによって取得されないように、MyClassでfalseに追加する必要がありました。

私は、この行削除:

log4j.logger.com.test.MyClass=OFF, email_logger 

をそして、これらの行を追加:

log4j.logger.com.test.MyClass=INFO, file_logger 
log4j.additivity.com.test.MyClass=false 
関連する問題