1

私はJavaサーブレットプロジェクトに取り組んでいます。log4jを使用して、例外、メソッドの入力と出力などをログに記録しようとしています。

Jarsファイルとlog4j.propertiesファイルを追加しました。

Mainを使用してテストクラスからLog4jをテストすると、正しく機能します。しかし、サーブレットプロジェクトを使用すると、ログファイルが作成されません。

ApacheとTomcatを使用してEclipseに取り組んでいます

まず、問題はlog4j.propertiesファイルだと思いました。srcディレクトリからWebcontentディレクトリに移動します。次に、Webcontentディレクトリ内のclassesディレクトリに再度移動しました。しかし、私は働きません。

これは私のlog4j.propertiesファイルです:

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{yyyy-MM-dd HH:mm:ss} %5p %c{1}:%L - %m%n
log4j.appender.stdout.Threshold=debug
log4j.appender.stdout.Append=true

log4j.appender.FILEHIBERNATE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.FILEHIBERNATE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILEHIBERNATE.datePattern='.'yyyy-MM-dd 
log4j.appender.FILEHIBERNATE.file =logs/Hibernate.log
log4j.appender.FILEHIBERNATE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [Level: %p]%m%n
log4j.appender.FILEHIBERNATE.Threshold=debug
log4j.appender.FILEHIBERNATE.Append=true

log4j.appender.springframework=org.apache.log4j.DailyRollingFileAppender
log4j.appender.springframework.layout=org.apache.log4j.PatternLayout
log4j.appender.springframework.datePattern='.'yyyy-MM-dd 
log4j.appender.springframework.file =logs/springframework.log
log4j.appender.springframework.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [Level: %p]%m%n
log4j.appender.springframework.Threshold=debug
log4j.appender.springframework.Append=true

log4j.appender.fidely=org.apache.log4j.DailyRollingFileAppender
log4j.appender.fidely.layout=org.apache.log4j.PatternLayout
log4j.appender.fidely.datePattern='.'yyyy-MM-dd 
log4j.appender.fidely.file =logs/Fidely.log
log4j.appender.fidely.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [Level: %p]%m%n
log4j.appender.fidely.Threshold=info,debug
log4j.appender.fidely.Append=true

log4j.appender.fnet3CustomerAreaMobile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.fnet3CustomerAreaMobile.layout=org.apache.log4j.PatternLayout
log4j.appender.fnet3CustomerAreaMobile.datePattern='.'yyyy-MM-dd 
log4j.appender.fnet3CustomerAreaMobile.file =logs/customer_area_interfaces/fidelynet3CustomerAreaMobile.log
log4j.appender.fnet3CustomerAreaMobile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [Level: %p]%m%n
log4j.appender.fnet3CustomerAreaMobile.Threshold=debug,info,error
log4j.appender.fnet3CustomerAreaMobile.Append=true

log4j.appender.fnet3CustomerAreaMobileServlet=org.apache.log4j.DailyRollingFileAppender
log4j.appender.fnet3CustomerAreaMobileServlet.layout=org.apache.log4j.PatternLayout
log4j.appender.fnet3CustomerAreaMobileServlet.datePattern='.'yyyy-MM-dd 
log4j.appender.fnet3CustomerAreaMobileServlet.file =logs/customer_area_interfaces/mobile/fidelynet3CustomerAreaMobile.log
log4j.appender.fnet3CustomerAreaMobileServlet.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [Level: %p]%m%n
log4j.appender.fnet3CustomerAreaMobileServlet.Threshold=debug,info,error
log4j.appender.fnet3CustomerAreaMobileServlet.Append=true

log4j.logger.net.sf.hibernate = DEBUG, FILEHIBERNATE
log4j.logger.hibernate = DEBUG, FILEHIBERNATE
log4j.logger.org.hibernate = DEBUG, FILEHIBERNATE
log4j.logger.org.springframework = debug, springframework
log4j.logger.fidely = info, fidely
log4j.logger.fnet3CustomerAreaMobile = debug, info, error, fnet3CustomerAreaMobile
log4j.logger.fnet3CustomerAreaMobileServlet = debug, info, error, fnet3CustomerAreaMobileServlet

log4j.rootLogger = debug

そしてこれはコンソールです:

log4j:ERROR Could not find value for key log4j.appender.info
log4j:ERROR Could not instantiate appender named "info".
log4j:ERROR Could not find value for key log4j.appender.error
log4j:ERROR Could not instantiate appender named "error".
log4j:ERROR Could not find value for key log4j.appender.info
log4j:ERROR Could not instantiate appender named "info".
log4j:ERROR Could not find value for key log4j.appender.error
log4j:ERROR Could not instantiate appender named "error".
log4j:ERROR Could not find value for key log4j.appender.info
log4j:ERROR Could not instantiate appender named "info".
log4j:ERROR Could not find value for key log4j.appender.error
log4j:ERROR Could not instantiate appender named "error".
log4j:ERROR Could not find value for key log4j.appender.info
log4j:ERROR Could not instantiate appender named "info".
log4j:ERROR Could not find value for key log4j.appender.error
log4j:ERROR Could not instantiate appender named "error".
log4j:WARN No appenders could be found for logger (org.apache.commons.digester.Digester.sax).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

やるのかわからない。手伝って頂けますか?

私の貧弱な英語でごめんなさい

4

4 に答える 4

1

まず、log4j.properties をsrcフォルダーに入れます。Mavenを使用する場合は、 src/main/resourcesの下に置きます。log4j.jar (バージョン1.2.16を使用) がクラスパス内にある場合、ファイルは自動的に検出されます。

一度に 1 つのログ レベルしか存在できないため、「debug、info、error、...」の行を「debug」または「info」に編集します。

log4j.logger.fnet3CustomerAreaMobile = debug, fnet3CustomerAreaMobile

2 番目の値はアペンダーの名前でなければなりません。

次の jar の lib ディレクトリを確認します: slf4j-api.jar (slf4j を追加)、slf4j-log4j12.jar (slf4j から log4j にリダイレクト)、およびjcl-over-slf4j.jar (Apache commons-logging から slf4j にリダイレクト)。SLF4J バージョンも互換性がある必要があります。1.6.4 (最新)を使用してください。SLF4J は、適切な jar を追加および削除することによって自動的に構成されます (悲しいことに)。上記の jar のみを追加します。

お役に立てれば。

于 2012-04-20T19:30:04.287 に答える
0

これをチェックして、役立つかどうかを確認してください。

http://www.slf4j.org/codes.html#StaticLoggerBinder

クラス org.slf4j.impl.StaticLoggerBinder のロードに失敗しました

このエラーは、org.slf4j.impl.StaticLoggerBinder クラスをメモリにロードできなかった場合に報告されます。これは、クラスパスに適切な SLF4J バインディングが見つからない場合に発生します。クラスパスに slf4j-nop.jar、slf4j-simple.jar、slf4j-log4j12.jar、slf4j-jdk14.jar、または logback-classic.jar の 1 つ (および 1 つだけ) を配置すると、問題が解決するはずです。

1.6.0 以降 SLF4J バージョン 1.6 以降、バインディングがない場合、SLF4J はデフォルトでノーオペレーション (NOP) ロガー実装になります。

プロジェクトのダウンロード ページから SLF4J バインディングをダウンロードできます。

于 2012-04-20T19:18:46.963 に答える
0

ログを確認してください。特に最後の 2 行:

...
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
...

クラスパスにいくつかのライブラリが欠けていると確信しています。

于 2012-04-20T19:01:54.503 に答える