問題タブ [log4j]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Jnlpプログラムがlog4jで機能しないのはなぜですか?
次の問題があります。TomcatにJNLPと実行可能JARファイルをデプロイしました。JNLPファイルはJARファイルを自動的にダウンロードして実行する必要があります。JARファイルは署名および検証されます。これが行われます(ダウンロード部分)。ただし、JARメインクラス(JNLPファイルで指定)を実行すると、問題が発生します。メインクラスコードの一部が実行されます。その後、静的なfinal org.apache.log4j.Loggerインスタンスが宣言されているクラスを読み込もうとすると、エラーが発生します。
以下は、JNLPファイルの代表的な部分、コード、およびエラーです。
JNLP
メインクラス:
そして問題のクラス:
そしてエラー:
log4j:ERROR[log4j.dtd]が見つかりませんでした。検索で[sun.misc.Launcher$AppClassLoader@d9f9c3]クラスローダーを使用しました。log4j:ERROR URLを解析できませんでした[jar:http:// localhost:8080 / examples / DemoJar.jar!/log4j.xml]。java.io.FileNotFoundException:com.sun.org.apacheのcom.sun.jnlp.JNLPCachedJarURLConnection.getInputStream(Unknown Source)のcom.sun.jnlp.JNLPCachedJarURLConnection.connect(Unknown Source)にJARエントリlog4j.dtdが見つかりません.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(Unknown Source)at com.sun.org.apache.xerces.internal.impl .XMLEntityManager.startDTDEntity(Unknown Source)at com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.setInputSource(Unknown Source)at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl $ DTDDriver.dispatch (不明なソース)com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl $ DTDDriver.next(不明なソース)com.sun.org.apache.xerces.internal.impl。DelegatingMethodAccessorImpl.invoke(Unknown Source)at java.lang.reflect.Method.invoke(Unknown Source)at com.sun.javaws.Launcher.executeApplication(Unknown Source)at com.sun.javaws.Launcher.executeMainClass(Unknown Source)at com.sun.javaws.Launcher.doLaunchApp(Unknown Source)at com.sun.javaws.Launcher.run(Unknown Source)at java.lang.Thread.run(Unknown Source)log4j:WARNロガーのアペンダーが見つかりませんでした( WizardRunner)。log4j:WARNlog4jシステムを正しく初期化してください。lang.Thread.run(Unknown Source)log4j:WARNロガー(WizardRunner)のアペンダーが見つかりませんでした。log4j:WARNlog4jシステムを正しく初期化してください。lang.Thread.run(Unknown Source)log4j:WARNロガー(WizardRunner)のアペンダーが見つかりませんでした。log4j:WARNlog4jシステムを正しく初期化してください。
ありがとうございました!
java - java.util.loggingをlog4jに送信する方法は?
log4jに対してすべてのロギングを行う既存のアプリケーションがあります。log4jを使用するか、Commons Loggingに対してログを記録する他の多くのライブラリを使用します。これにより、環境内でlog4jが使用されることになります。依存関係の1つは、slf4jに対してもログを記録します。これは、最終的にはlog4jにも委任されるため、正常に機能します。
ここで、キャッシュのニーズに応じて、このアプリケーションにehcacheを追加したいと思います。以前のバージョンのehcacheはcommons-loggingを使用していましたが、これはこのシナリオでは完全に機能していましたが、バージョン1.6-beta1では、commons-loggingへの依存関係が削除され、代わりにjava.util.loggingに置き換えられました。
java.util.loggingで利用できる組み込みのJDKロギングにあまり詳しくない場合、log4jに対してJULに送信されるログメッセージをログに記録する簡単な方法があります。これにより、既存の構成を使用して、今後のロギングを設定できます。 ehcacheから?
JULのjavadocsを見ると、LogManager
使用する実装を変更するために一連の環境変数を設定し、おそらくそれを使用しLogger
てJULLogger
クラスでlog4jをラップできるようです。これは正しいアプローチですか?
皮肉なことに、ライブラリで組み込みのJDKロギングを使用すると、他の地域(ほとんど)が代わりにサードパーティのライブラリを使用している場合に、このような頭痛の種が発生します。
log4j - log4j.xmlを使用してlog4jを構成し、クラス名に基づいて異なるログファイルに追加するにはどうすればよいですか?
パッケージcom.foo.barのクラスから生成されたすべてのログメッセージがbar.logに移動し、パッケージcom.bar.blatzのクラスから生成されたすべてのログメッセージがblatz.logに移動するようにlog4jを設定したいと思います。
質問
- log4j.xmlを使用してこれを行うにはどうすればよいですか?
- プロパティファイルを使用してその可能性を知っていますが、XML構成を使用してそれを行うにはどうすればよいですか?
java - Log4J による構造化/結合ロギング
あなたが私を助けてくれることを願っています。
トランザクションをログに記録する必要がある Web サービスがあります。多数のヒットがあるため、ログ ステートメントはログ ファイル内でバラバラまたは断片化されて表示されます。
レイヤー全体に StringBuilder インスタンスを渡し、このインスタンスにステートメントを追加することを検討しました。次に、クライアントに応答を返す前に、その内容を最後に 1 回ログに記録します (メイン コントローラーの finally 句)。これは不必要に思えますが、Log4J でこれを行うためのよりクリーンな方法があると確信しています。
誰でもこの問題に光を当てることができますか?
ありがとう
java - 特定のユーザーに対して Log4j のロギングを有効にする
log4j.properties ファイルで、レベルを ERROR に設定しました。特定のユーザーについては、Level を DEBUG に設定する必要があります。実行時にログ レベルを変更できましたが、これは、アプリケーションに同時にアクセスするすべてのユーザーに対して有効になります。選択したユーザーのログを有効にする他の方法はありますか? どんな助けでも大歓迎です。
log4j - DailyRollingFileAppender-log4jでMaxBackupIndexを使用します
DailyRollingFileAppenderでMaxBackupIndexを使用する方法を教えてもらえますか?RollingFileAppenderがmaxBackupIndexプロパティをサポートしていることは知っていますが、DailyRollingFileAppenderでMaxBackupIndexを使用するための回避策はありますか?
java - Java でのロギングと一般的な: ベスト プラクティス?
ロギング コードを見ると、正しく実行できているか疑問に思うことがあります。明確な答えはないかもしれませんが、以下の懸念があります。
ライブラリ クラス
メッセージをログに記録するライブラリ クラスがいくつかありINFO
ます。致命的なエラーは例外として報告されます。現在、クラス名をログ名として使用するクラスに静的ロガーインスタンスがあります。(Log4j の: Logger.getLogger(MyClass.class)
)
これは正しい方法ですか?おそらく、このライブラリ クラスのユーザーは、私の実装からのメッセージを望まないか、メッセージをアプリケーション固有のログにリダイレクトしたいと考えています。ユーザーが「外の世界」からロガーを設定できるようにする必要がありますか? このような場合はどのように処理しますか?
一般ログ
一部のアプリケーションでは、クラスの名前で識別されない特定のログにログ メッセージを書き込みたいクラスが存在する場合があります。(つまり: HTTP Request log
) そのようなことを行う最善の方法は何ですか? 検索サービスが思い浮かびます...