[解決済み] log4jのシステムを正しく初期化してください。Webサービス実行中
質問
こんなことを聞くのは馬鹿らしいかもしれませんが、私は混乱しています。私が参照したのは Log4jのプロパティを設定する が、役に立ちそうもありません。
私は簡単なWebサービスHelloWorldを書きました。そして、それを実行している間、私はこのようなエラーを取得します。
log4j:WARN logger (org.apache.axis.transport.http.AxisServlet) 用のアペンダーが見つかりませんでした。 log4j:WARN log4j システムを正しく初期化してください。
なぜこのようなことが起こるのか、よくわかりません。
私は、Eclipseを使用してWebサービスを生成し、Tomcat 6.0にデプロイしています。私は Axisデベロッパーズガイド で、それによると
log4j.configuration=log4j.properties このシステム・プロパティを使用して、Log4J設定ファイルの名前を指定します。指定しない場合、デフォルトの設定ファイルは log4j.properties です。log4j.properties ファイルは、axis.jar で提供されます。
の中にlog4j.propertiesは見つかりませんでした。
axis.jar
.
この件に関して何かヘルプはありますか?
解決方法は?
これらのメッセージは何かと厄介なので、わかりやすくするためにこのようなものが作られました。 https://issues.apache.org/bugzilla/show_bug.cgi?id=25747
それらについて厄介なのは、警告はLog4jがその
log4j.properties
(または
log4j.xml
) ファイルがある場合だけでなく、そのファイルは問題ないが、その内容が設定の観点から完全でない場合にも使用できます。
以下の段落は、ここから引用しています。 http://svn.apache.org/repos/asf/logging/log4j/tags/v1_2_9/docs/TROUBLESHOOT.html
ロギング出力は、アペンダーを使用してターゲットに書き込まれます。もし、アペンダーがカテゴリーやその祖先のどれにもアタッチされていない場合、ログを取ろうとすると次のようなメッセージが表示されるでしょう。
log4j: No appenders could be found for category (some.category.name).
log4j: Please initialize the log4j system properly.
Log4jには、デフォルトのロギング・ターゲットがありません。それは、すべてのカテゴリーがアペンダーを継承することができることを確実にするために、ユーザーの責任です。これは、ルート・カテゴリーにアペンダーを添付することによって、簡単に達成することができます。
ルートロガーの設定方法に関する情報はこちら(
log4j.rootLogger
) にあるlog4j
ドキュメント
のように、基本的にはファイルの先頭にこのような簡単なものを追加します。
log4j.rootLogger=debug, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
これで、起動時に表示される WARN メッセージが解消されます。
(という名前のアペンダーを持っていないことを確認してください)。
stdout
また、ルートロガーに与えるレベルに注意してください。
debug
は非常に冗長で、アプリ内のすべてのライブラリがコンソールに何かを書き始めることになります)。
についてですが
log4j.properties
/
log4j.xml
に置くことをお勧めします。
/WEB-INF/classes
様々な調整(ログの有効化/無効化、ログレベルの変更など)のためにそれを公開することが重要であるためです。クラスパスにある JAR の中に置くこともできますが (コメントで指定したとおりです)、 アーカイブに含まれることになり (できればアーカイブの中の適切な場所に置きたいのですが)、 その場合は
/WEB-INF/classes
.
関連
-
[解決済み] Jdbctemplate の文字列に対するクエリです。EmptyResultDataAccessException: 不正な結果サイズ:期待値1、実際0
-
[解決済み] Java - JTextFieldが空かどうかを確認する
-
[解決済み] getContentPane()は具体的に何をするのですか?
-
[解決済み] 環境変数JAVA_OPTSの使い方を教えてください。
-
[解決済み] 一部の入力ファイルが非推奨のAPIを使用またはオーバーライドしている
-
[解決済み] 最も近い整数への切り捨て - 私は不正をしているのでしょうか、それともこれは十分すぎるほど適切なのでしょうか?
-
[解決済み] どのように配列の10未満の値(x * 2)を倍増するコードを取得するには?(Java)
-
[解決済み] Javaでdoubleをfloatに変換する
-
[解決済み] x--やx++はここで何をするのですか?
-
[解決済み】log4jを正しく初期化する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] なぜJPAには@Transientアノテーションがあるのですか?
-
[解決済み] java.lang.IncompatibleClassChangeError: Mongo クラスを実装しています。
-
[解決済み] java.util.concurrent.ExecutionException 例外をどのように処理しますか?
-
[解決済み] 警告: コンテキスト初期化中に例外が発生 - 更新の試みはキャンセルされました。
-
[解決済み] Javaでのスキャナが動作しない
-
[解決済み] Java の条件付きコンパイル:コードチャンクをコンパイルしないようにするには?
-
[解決済み] Apache Camelのログに簡単なテキストを記録する
-
[解決済み] Javaにおけるシンボリック参照
-
[解決済み] スリーピング中のスレッドが割り込まれ、データベースへの接続が失われる
-
[解決済み】log4jを正しく初期化する方法は?