2012-01-16 18 views
0

私はLog4jでプロジェクトを構成しました。私はlog4.propertiesファイルを使ってlog4jを設定しました。 テストの実行中にmyLog.logファイルが作成されますが、ログファイルには何も書き込まれません。 アペンダーRollingFileAppenderlog4j.rootLogger=DEBUGとして使用しています。ログメッセージはログファイルに書き込まれません

この問題の原因は何者ですか?

ここにプロジェクトのlog4j.propertiesがあります。ログファイルにログ受信

log4j.rootLogger= DEBUG, ConsoleAppender, Rolling 
log4j.appender.ConsoleAppender=org.apache.log4j.ConsoleAppender 
log4j.appender.ConsoleAppender.layout=org.apache.log4j.PatternLayout 

log4j.appender.ConsoleAppender.layout.ConversionPattern=%d %-2p %c.%M(): %m%n 
log4j.appender.Rolling=org.apache.log4j.RollingFileAppender 
log4j.appender.Rolling.MaxFileSize=5MB 
log4j.appender.Rolling.MaxBackupIndex=2 
log4j.appender.Rolling.File=D:\Logs\myProj.log 
log4j.appender.Rolling.layout = org.apache.log4j.PatternLayout 
log4j.appender.Rolling.layout.ConversionPattern=%d %-4p %c.%M(): %m%n 
## Following two lines have been removed now. 
log4j.logger.com=WARN 
log4j.logger.org=WARN 

:すべての

2012-01-16 22:02:08,534 DEBUG org.apache.http.headers.receiveResponseHeader(): << content-type: application/json; charset=UTF-8 
2012-01-16 22:02:08,534 DEBUG org.apache.http.headers.receiveResponseHeader(): << connection: close 
2012-01-16 22:02:08,534 DEBUG org.apache.http.headers.receiveResponseHeader(): << content-length: 236 
2012-01-16 22:02:08,550 DEBUG org.apache.http.headers.receiveResponseHeader(): << server: httpd.js 
2012-01-16 22:02:08,550 DEBUG org.apache.http.headers.receiveResponseHeader(): << date: Tue, 17 Jan 2012 03:02:06 GMT 
2012-01-16 22:02:08,566 DEBUG org.apache.http.wire.wire(): << "{"name":"clickElement","sessionId":"2fad55cf-670e-44f3-ab60-7d2f76f641e6","status":0,"value":"This action is final and cannot be undone?"}" 
2012-01-16 22:02:08,566 DEBUG org.apache.http.impl.conn.DefaultClientConnection.shutdown(): Connection shut down 
2012-01-16 22:02:08,566 DEBUG org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager.releaseConnection(): Released connection is not reusable. 
2012-01-16 22:02:08,566 DEBUG org.apache.http.impl.conn.tsccm.ConnPoolByRoute.freeEntry(): Releasing connection [HttpRoute[{}->http://127.0.0.1:7055]][null] 
2012-01-16 22:02:08,566 DEBUG org.apache.http.impl.conn.tsccm.ConnPoolByRoute.notifyWaitingThread(): Notifying no-one, there are no waiting threads 
2012-01-16 22:02:10,566 DEBUG org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager.getConnection(): Get connection: HttpRoute[{}->http://127.0.0.1:7055], timeout = 120000 
2012-01-16 22:02:10,566 DEBUG org.apache.http.impl.conn.tsccm.ConnPoolByRoute.getEntryBlocking(): [HttpRoute[{}->http://127.0.0.1:7055]] total kept alive: 0, total issued: 0, total allocated: 0 out of 2000 
2012-01-16 22:02:10,566 DEBUG org.apache.http.impl.conn.tsccm.ConnPoolByRoute.getFreeEntry(): No free connections [HttpRoute[{}->http://127.0.0.1:7055]][null] 
2012-01-16 22:02:10,566 DEBUG org.apache.http.impl.conn.tsccm.ConnPoolByRoute.getEntryBlocking(): Available capacity: 2000 out of 2000 [HttpRoute[{}->http://127.0.0.1:7055]][null] 
2012-01-16 22:02:10,581 DEBUG org.apache.http.impl.conn.tsccm.ConnPoolByRoute.createEntry(): Creating new connection [HttpRoute[{}->http://127.0.0.1:7055]] 
2012-01-16 22:02:10,597 DEBUG org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(): Connecting to 127.0.0.1:7055 
2012-01-16 22:02:10,597 DEBUG org.apache.http.client.protocol.RequestAddCookies.process(): CookieSpec selected: best-match 
2012-01-16 22:02:10,597 DEBUG org.apache.http.client.protocol.RequestAuthCache.process(): Auth cache not set in the context 
2012-01-16 22:02:10,597 DEBUG org.apache.http.impl.client.DefaultHttpClient.tryExecute(): Attempt 1 to execute request 
2012-01-16 22:02:10,597 DEBUG org.apache.http.impl.conn.DefaultClientConnection.sendRequestHeader(): Sending request: GET /hub/session/2fad55cf-670e-44f3-ab60-7d2f76f641e6/alert_text HTTP/1.1 
2012-01-16 22:02:10,597 DEBUG org.apache.http.wire.wire(): >> "GET /hub/session/2fad55cf-670e-44f3-ab60-7d2f76f641e6/alert_text HTTP/1.1[\r][\n]" 
2012-01-16 22:02:10,597 DEBUG org.apache.http.wire.wire(): >> "Accept: application/json, image/png[\r][\n]" 
2012-01-16 22:02:10,597 DEBUG org.apache.http.wire.wire(): >> "Host: 127.0.0.1:7055[\r][\n]" 
2012-01-16 22:02:10,597 DEBUG org.apache.http.wire.wire(): >> "Connection: Keep-Alive[\r][\n]" 
2012-01-16 22:02:10,597 DEBUG org.apache.http.wire.wire(): >> "[\r][\n]" 
2012-01-16 22:02:10,597 DEBUG org.apache.http.headers.sendRequestHeader(): >> GET /hub/session/2fad55cf-670e-44f3-ab60-7d2f76f641e6/alert_text HTTP/1.1 
2012-01-16 22:02:10,597 DEBUG org.apache.http.headers.sendRequestHeader(): >> Accept: application/json, image/png 
2012-01-16 22:02:10,597 DEBUG org.apache.http.headers.sendRequestHeader(): >> Host: 127.0.0.1:7055 
2012-01-16 22:02:10,597 DEBUG org.apache.http.headers.sendRequestHeader(): >> Connection: Keep-Alive 
2012-01-16 22:02:10,612 DEBUG org.apache.http.wire.wire(): << "HTTP/1.1 200 OK[\r][\n]" 
2012-01-16 22:02:10,612 DEBUG org.apache.http.wire.wire(): << "content-type: application/json; charset=UTF-8[\r][\n]" 
2012-01-16 22:02:10,612 DEBUG org.apache.http.wire.wire(): << "connection: close[\r][\n]" 
2012-01-16 22:02:10,612 DEBUG org.apache.http.wire.wire(): << "content-length: 236[\r][\n]" 
2012-01-16 22:02:10,612 DEBUG org.apache.http.wire.wire(): << "server: httpd.js[\r][\n]" 
2012-01-16 22:02:10,612 DEBUG org.apache.http.wire.wire(): << "date: Tue, 17 Jan 2012 03:02:10 GMT[\r][\n]" 
2012-01-16 22:02:10,612 DEBUG org.apache.http.wire.wire(): << "[\r][\n]" 
2012-01-16 22:02:10,612 DEBUG org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(): Receiving response: HTTP/1.1 200 OK 
+4

はあなた 'log4j.properties' – adarshr

+0

の全内容を表示し、あなたのlog4j.propertiesプロパティファイルと、あなたのJavaロギングコードさ –

+0

示して? – kgiannakakis

答えて

1

詳細:ログレベルが<のcomまたはorg-packagesからのlogging-requestは有効になりません。だからあなたのrootLoggerには転送されません。

引用:P> = Q場合

(割り当てまたは継承のいずれかで、どちらが 適切である)レベルQとロガーにおけるレベルpのログ要求は、イネーブルされます。

与えられたロガーの各有効ロギングの要求は、階層内のロガーとしてだけでなく、アペンダが高い 内のすべてのアペンダに転送されます。

参照:http://logging.apache.org/log4j/1.2/manual.html

+0

助けていただきありがとうございます。しかし、ログを見ると、私のJavaクラスからのステートメントはありません。すべてのlogsステートメントは他のパッケージに関連しています。私はlog4j.logger.org.apache.http = ERRORを追加した後、質問のログの一部を貼り付けています。今私はログに何も見ていない。なぜ私のJavaクラスからの行のどれもログファイルに記録されていないことはわかりません。 – PriWeb

+0

@PriWeb - ロガーを使用しているクラスの完全修飾名は何ですか?ロガーをどのように作成するか、そしてログステートメントでどのログレベルを使用しているかを貼り付けます。 – quaylar

+0

さらに、実行コンフィギュレーションに "-Dlog4j.debug =" true ""を追加して、Log4Jがどのように設定されているかを確認することができます(classpathにlog4j.propertiesがありますか? – quaylar

2

まず、あなたのlog4j.propertiesをクラスパスにロードされていることを確認してください。 Webappの場合は、ファイルがWEB-INF/classesディレクトリ内にあることも想定しています。しかし、あなたがファイルが作成されていると言うので、それは問題ではないと私は思う。

だから、私は最後の2行を削除している。この

log4j.rootLogger= DEBUG, Console, Rolling 
log4j.appender.Console=org.apache.log4j.ConsoleAppender 
log4j.appender.Console.layout=org.apache.log4j.PatternLayout 

log4j.appender.Console.layout.ConversionPattern=%d %-2p %c.%M(): %m%n 
log4j.appender.Rolling=org.apache.log4j.RollingFileAppender 
log4j.appender.Rolling.MaxFileSize=5MB 
log4j.appender.Rolling.MaxBackupIndex=2 
log4j.appender.Rolling.File=D:\Logs\myProj.log 
log4j.appender.Rolling.layout = org.apache.log4j.PatternLayout 
log4j.appender.Rolling.layout.ConversionPattern=%d %-4p %c.%M(): %m%n 

注意してみてください。

は基本的には、これらのラインは、comorgから始まるすべてのパッケージにWARNにログレベルを設定します。だから、WARNメッセージが記録されていない限り、ログファイルには何も表示されません。あなたは上記の

log4j.logger.com.foo.bar=DEBUG 
log4j.logger.com.foo.bar.MyClass=TRACE 

ような何かをすることによってレベルを試すことができ

TRACEレベルでcom.foo.bar.MyClassログを出力します一方DEBUG内のすべてのcom.foo.barのログをログ出力します。

+1

ありがとうございます。それは役に立ちます。しかし、私は、ステートメントのいずれも私のJavaクラスからのログを参照してください。すべてのlogsステートメントは他のパッケージに関連しています。私は質問のログの一部を貼り付けています。 – PriWeb

+0

@PriWebはお手伝いできませんが、あなたのクラスには何も記録していませんか? – adarshr

関連する問題