2011-10-02 7 views
4

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

ログファイルが作成されない点を除いて、すべて正常に動作しています。 私は以下のようなものからlog4j.propertiesでログファイルを変更し、そのディレクトリに全員のフルアクセス権を与える:

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

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

私は他に何を確認することができますか?

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

+0

WARファイルのWEB-INF/classesにlog4j.propertiesを配置しましたか?ファイルシステムの別の場所でadmin.logを探しましたか? stdoutまたはstderrログ(私はこれらがCEのどこにあるのかわかりません)はlog4j関連のエラーを表示しますか?あなたがやっていることはうまくいくはずなので、log4j.propertiesファイルが使用されていないと思います。 – dbreaux

+0

はい、log4jです。プロパティは、WARファイル内のWEB-INF/classesの内部にあります。私はlog4j.propertiesは出力パターンを変更してもokだと思うし、コンソール出力のために働く。 – John

+0

log4j.propertiesは内部にありますが、何とかlog4jによって読み取られません。私はそのコードを強制して動作していますが、WEB-INF/classessの中でtomcatをハードコーディングせずに使用する方法はありますか?コード:PropertyConfigurator.configure( "C:\\ test \\ log4j.properties"); – John

答えて

4

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

+0

おかげdbreaux、輝かしい:とにかく、私は唯一のlog4jのログファイルを作成したいが、失敗しました。ため息、展開計画を作成する方法を学ぶ!そのスイッチを指定する – John

0

私はあなたがこのようなあなたのサーバー上で設定した環境変数を使用することをお勧め:

あなたは、サーバーの管理コンソールにアクセスする必要があります。アプリを実行しているユーザーがそれにアクセスしていることを確認してください

/log.txt {$のSERVER_PATH}:あなたのlog4jではカスタムプロパティの下

SERVER_PATHは=/ABC/DEF /ログ

を、これを使用ディレクトリ。

+0

ご返信ありがとうございます。私はwebsphereにはまったく新しいです、envを設定する正しい方法は何ですか、私は管理コンソール全体を読んだが、そこには何も見つかりませんでしたか?私が試した最良の推測は、C:¥Program Files¥IBM¥WebSphere¥AppServerCommunityEdition¥binにそのenv varを設定し、log4jを示唆するように変更することです。 – John

+0

変数の設定は、サーバの下で行われ - プロセス定義 - カスタムプロパティ –

+0

を私が唯一の情報は、サーバーの下に「プロセス定義」を得ることはありません、\tなど\tのJavaシステム情報、サーバログ、シャットダウン、Webサーバー、スレッドプール、私はWindowsでCommunity Editionを使用していますが、コンソールはhttp:// localhost:8080/ – John

1

これは、私が同様の問題のトラブルシューティングを試みるものです。

  1. log4jデバッグをオンにして、実際にファイルを取得する場所を確認します。どのファイルが選択されたかの証拠が必要です(デバッグをオンにすることは価値のある活動です)。これは、log4jが設定ファイルの場所を探すために何をしようとしているかに関する情報を提供します。

    -Dlog4j.debug =真

  2. Iコードにlog4jの位置をハードコーディングしないであろう。代わりに私は log4j.configurationシステムプロパティを使用し、 にJVM引数を記載します。このようにしても、自分のコードに触れる必要はありません。

    -Dlog4j.configuration =ファイル:///home/manglu/log4j.properties

私はそれはTomcatのこと(関係なく、私が使用するランタイム・サーバーのこのアプローチを使用するか、CE WASまたはWAS )

希望します。

+0

おかげManglu、?私の初心者の質問には申し訳ありません!JVM引数で – John

+0

。-D log4jのに利用可能なファイルの参照を配置します。で、JVM引数を設定するを参照してください。あなたが使用しているサーバ用のGoogleのURL –

+0

私のアプリケーションでanoveアプローチを使用しています JVM引数ではなくカスタムプロパティでファイルの場所を指定できますか? –