2016-09-14 8 views
0

私は最終プロジェクトにlog4jを使用しています。私は私のプロジェクトでlog4jを使用する前に、単一クラスを使ってテストしました。それはうまくいった。
それから私は私のプロジェクトにlog4jのを追加し、私が使用して多くのクラスでそれを使用する:これは私のプロパティファイルであるlog4jのすべてのクラスのアペンダーを作成する必要がありますか?

log4j:WARN No appenders could be found for logger (classes.Supplier). 
log4j:WARN Please initialize the log4j system properly. 

# Root logger option 
log4j.rootLogger=DEBUG, file 
log4j.rootLogger=DEBUG, errorfile 

# Redirect log messages to console 
log4j.appender.file=org.apache.log4j.RollingFileAppender 
log4j.appender.errorfile=org.apache.log4j.RollingFileAppender 

# Redirect log messages to a log file, support file rolling. 
log4j.appender.file.File=C:\\HardwareLog\\INFO.log 
log4j.appender.file.MaxFileSize=5MB 
log4j.appender.file.MaxBackupIndex=10 
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n 

log4j.appender.errorfile=C:\\HardwareLog\\ERROR.log 
log4j.appender.errorfile.Threshhold=ERROR 
log4j.appender.errorfile.MaxFileSize=5MB 
log4j.appender.errorfile.MaxBackupIndex=10 
log4j.appender.errorfile.layout=org.apache.log4j.PatternLayout 
log4j.appender.errorfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n 
final static Logger logger = Logger.getLogger(Supplier.class); 

は、その後、私は警告を得ました
  1. クラスを使用するために、各クラスのアペンダーを作成する必要がありますか?
  2. 異なるパッケージで1つのプロパティファイルを使用できますか?
+0

クラスごとにアペンダーを作成する必要はありません。 Caladianの回答を参照してください[http://stackoverflow.com/questions/3495443/how-to-implement-use-log4j](http://stackoverflow.com/questions/3495443/how-to-implement-use-log4j) log4jの実装方法 –

+0

通常は、単一のクラスではなく、パッケージ用のアペンダーを作成します。パッケージ用のアペンダーを作成すると、そのアペンダーはそのパッケージ内のすべてのクラスと、そのパッケージのすべてのサブパッケージ内のすべてのクラスに適用されます。 – deepblue

+0

ありがとうございました – Malinda

答えて

1

を通過します。ルートロガーを削除し、私の2つのパッケージに2つのロガーを追加しました。

log4j.logger.package1=DEBUG,FIRST 
log4j.logger.package2=DEBUG,SECOND 

現在は正常です。

関連する問題