5

私は最近、AIX で動作する websphere と log4j を使用する Web アプリケーション プロジェクトを引き継ぎました。開発環境を作成するために、Windows ですべてのコンポーネントをセットアップし、Eclipse を使用して WAR ファイルをコンパイルしてデプロイします。

ログファイルが作成されないことを除いて、すべて正常に動作しています。log4j.properties のログ ファイルを以下のように変更し、すべてのユーザーにディレクトリへのフル アクセス許可を与えます。

log4j.appender.F1.File=/abc/def/logs/admin.log

log4j.appender.F1.File=c:/logs/admin.log

他に何が確認できますか?

同じ log4j.properties を使用する単純なスタンドアロンの testapp を作成し、ログ ファイルを作成できますが、サーブレットが websphere にデプロイされると機能しません。助けてください!ありがとう!

4

3 に答える 3

4

わかりました、この記事はあなたを助けるべきだと思います。WebSphere CEはデフォルトでlog4jを使用し、グローバル・プロパティー・ファイルでそれを制御しているようです。アプリケーション固有のプロパティファイルの使用方法に関するセクションがあります。

于 2011-10-03T17:31:26.903 に答える
1

同様の問題をトラブルシューティングするために私が試みていることは次のとおりです。

  1. log4j デバッグをオンにして、実際にファイルがどこから取得されるかを確認します。どのファイルが取得されたかの証拠が必要です (そのため、デバッグをオンにすることは価値のあるアクティビティです)。

    -Dlog4j.debug=true

  2. コードで log4j の場所をハードコーディングしません。代わりに、log4j.configurationSystem プロパティを使用して、JVM 引数でそれを指定します。この方法でも、コードに触れる必要はありません。

    -Dlog4j.configuration=file:///home/manglu/log4j.properties

使用するランタイム サーバー (Tomcat、WAS CE、WAS など) に関係なく、このアプローチを使用します。

お役に立てれば

于 2011-10-04T02:02:23.803 に答える
0

次のようにサーバーに設定された環境変数を使用することをお勧めします。

サーバーの管理コンソールにアクセスする必要があります。カスタム プロパティの下

Server_path=/abc/def/logs

log4j で、これを使用します: {$server_path}/log.txt

アプリを実行しているユーザーがそのディレクトリにアクセスできることを確認してください。

于 2011-10-02T16:21:03.583 に答える