0

私の現在のプロジェクトでは、ログ出力に Log4j を使用していますが、websphere 7 に展開すると、ログ ファイルが常にサーバーによって占有されているように見えるため、Log4J はそれを閉じて新しいファイルを開くことができません。DEBUG レベルの場合、現在のログ ファイルは 1.5 Gb まで拡張できます。いくつかのオンライン チュートリアルを実行しましたが、確かな解決策が得られませんでした。そのため、log4J を WS 7 で動作させることに関する意見や経験については、このスレッドを開きます。

現在の log4J は 1.2.15 であり、プロジェクトは他のコンテナーのないプレーンな POJO/JSP アプリケーションです (Spring のように、Spring/Tomcat で同じ問題を抱えた別のプロジェクトがあり、別のスレッドで開きます)。log4j.properties は次のとおりです。

log4j.rootCategory=INFO, ROL
#
# Rolling File Appender
#
log4j.appender.ROL=org.apache.log4j.RollingFileAppender
log4j.appender.ROL.Encoding=UTF-8
log4j.appender.ROL.File=C\:\\Logs\\AppOut.log
log4j.appender.ROL.MaxFileSize=10000KB
log4j.appender.ROL.MaxBackupIndex=10
log4j.appender.ROL.layout=org.apache.log4j.PatternLayout
log4j.appender.ROL.layout.ConversionPattern=%d -- %p -- %c -- %m%n

ただし、この構成では、ログ ファイルがロールオーバーされません。

アップデート:

アプリケーション(サーバーではなく)を停止した後にログファイルを削除しようとするたびに、Websphereのみを参照する「ファイルは別のアプリケーションによって開かれています」と常に言われているようです。他のアプリケーションがログ ファイルを開いていないことを保証できます。ロックを解除する唯一の方法は、を停止することapplication serverです。

アイデアをお寄せいただきありがとうございます。

4

2 に答える 2

2

使用したのは 7 でした (ポータル サーバー 6.1 が一番上)。(sl4j lbrary を使用してロガーへの呼び出しをラップしますが、ここでの問題とは関係ないと思います)。ルート カテゴリを設定せず、additivty を明示的に false に設定したことを除けば、実際には大きな違いは見られません。

以下は設定の一部 (アペンダの 1 つだけを示しています) で、問題なく動作し、期待どおりに 10MB ごとにログをロールします。おそらく、それは WAS 自体で構成されたものです。私は WAS 管理の専門家ではなく、自分で WAS をインストールしたわけではありませんが、解決していない場合は月曜日に管理者の 1 人に尋ねることができます。

log4j.logger.com.xxx.protection=TRACE, A1
log4j.additivity.com.xxx.protection=false

# other appenders excluded

log4j.appender.A1=org.apache.log4j.RollingFileAppender
log4j.appender.A1.File=${LOG_ROOT}/applLogs/ui_and_business_logic.log
log4j.appender.A1.MaxFileSize=10MB
log4j.appender.A1.MaxBackupIndex=10
log4j.appender.A1.Append=true
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d %p %t %c MSG: %m%n
于 2012-11-10T20:55:20.240 に答える
2

この記事を見たことがあると思います - http://www.ibm.com/developerworks/websphere/techjournal/0802_supauth/0802_supauth.html

于 2012-11-15T01:52:09.040 に答える