問題タブ [appender]
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 - log4j JDBCAppender に余分な値を保存する
ユーザー ID を別の列に格納するなど、ログ テーブルに追加の値を格納したいと考えています。どうすればこれを行うことができるか誰にもわかりませんか?
これが私の構成です:
ありがとうございました
java - Log4J を使用してログ出力を別のロガーに排他的に送信するにはどうすればよいですか
Log4J を使用して、非常に特殊な性質の出力を、他のすべてに指定されたものとは異なるログに送信したいと考えています。現在、次のような log4j.properties があります。
アペンダーのロガーからの出力のみが必要です-簡単ですが、SPECIAL_LOGGER
アペンダーからの出力は必要ありません。これは、ログレベルで必要なことを実行できないことを意味すると思います。specials
SPECIAL_LOGGER
catchall
何か案は?
rest - RESTレシーバーエンドポイント経由で新しいイベントをsplunkに送信するために使用するLogback Appenderはどれですか?
logback フレームワークを使用している場合に、Splunk の REST レシーバー エンドポイントを使用して新しいイベントを作成する場合、どの Logback アペンダーを使用する必要がありますか。そのためのカスタム基本アペンダーを作成したいですか?ソケットアペンダーですか?
log4j - ファイル URL を含む log4j アペンダー
log4j が自分のファイルの 1 つにログを記録しないという問題があり、その理由がわかりません。スクリプトを実行するコードがいくつかあります。スクリプトは、log4j を使用してファイルに記録されるログを追加できます。特定のスクリプトのみをログに記録するアペンダーを作成しようとしています。
上記のアペンダーは機能し、ログファイルにこれを取得します
スクリプトが何かをログに記録すると
com.my.class.file:/myfile
、log4j.properties ファイルの上記の構成を使用してログに表示されます。
上記を次のように変更した場合:
ファイルには何も記録されません。これはうまくいくはずだと思いましたか?ファイルを取得します
java - logback のルート セクションをスキップするロガーを作成する
いくつかのロガーが定義されており、いくつかのアペンダーを含むルートセクションがあります。
私が達成しようとしているのは、Z という名前のロガーが、ルート セクションで定義されているすべてのアペンダーではなく、ALERTS-SYSLOG アペンダーにのみ移動することです。それは XML ファイルの設定だけで可能ですか?
java - Logback アペンダーと Postfix
ERROR レベル未満のログをフィルタリングし、これらのログを電子メールで送信するアペンダーを作成しようとしています。これは私のlogback.xmlファイルがどのように見えるかです(アペンダー部分のみ):
smtpHost
localhost はどこにあり、アプリケーションを実行するサーバー上で作成したユーザーusername
にpassword
属しています。うまくいかないようです - メールが送信されませんでした。
しかし、別のサーバー、つまり のパラメーターを指定すると、smtpHost = smtp.gmail.com
期待どおりにメールが届きます。
これは、サーバー上で postfix を構成した方法に問題があることを意味していると思います。ファイルからの情報をここに投稿できれば幸いmain.cf
です (単にすべてを投稿したくはありません)。
log4j - log4jでAsyncAppenderを使用するには?
ログメッセージをWebサービスに書き込むためにlog4jでAsyncAppenderを使用する方法は? AsyncAppender を拡張する独自のアペンダーを作成するか、カスタム アペンダーを AsyncAppender にアタッチする必要がありますか? 2 番目の選択が正しければ、AsyncAppender オブジェクトをどこに取得すればよいですか? 例はありますか?
java - log4Jのすべてのアペンダー
多くの外部jarを使用して中規模のプログラムを実行しようとしましたが、常に「log4j:WARNロガーXYZのアペンダーが見つかりませんでした」という警告が表示されます。もちろん、log4j.propertiesに特定のアペンダーを追加する必要がありますが、これを追加すると、次の実行で別のアペンダーが失われます。
それで、警告がなくなるまで、開始、アペンダーの追加、開始、アペンダーの追加など以外に、外部jarで必要なすべてのアペンダーを見つける方法はありますか?
layout - SocketAppenderでパターンレイアウトを使用する方法
org.apache.log4j.net.SocketAppenderがレイアウトを使用していないことを読みました。しかし、私は本当にログをフォーマットする必要があり、ConversionPatternを使用する必要があります。誰かがこれに代わるものを知っていますか?ある種のSocketAppenderを使用する必要があります。
ありがとう
c# - log4netBufferingForwardingAppenderのパフォーマンスの問題
編集2:問題を解決しました(以下の回答を参照)この問題は、BufferingForwardingAppenderで装飾されたすべてのアペンダーと、BufferingAppenderSkeletonから継承したすべてのアペンダー(それぞれ:AdoNetAppender、RemotingAppender、SmtpAppender、SmtpPickupDirAppender)に影響を与える可能性があることに注意してください*
私はlog4netの非常に基本的なベンチをいくつか実行していて、RollingFileAppenderをBufferingForwardingAppenderで装飾しようとしました。
RollingFileAppenderを直接経由するのではなく、BufferingForwardingAppenderを経由すると、ひどいパフォーマンスが発生しますが、その理由はわかりません。
これが私の設定です:
そしてここにベンチマーク(非常に単純なコード)があります:
RollingFileAppenderを直接実行すると、出力は次のようになります。
511ミリ秒で完了
RollingFileAppenderを飾るBufferingForwardingAppenderを通過するのに対して:
14261ミリ秒で完了
これは約30倍遅くなります。
ファイルに書き込む前に一定量のログをバッファリングすることである程度の速度が得られると思いましたが、何らかの理由で事態はさらに悪化します。
設定はOKのように思えるので、これは本当に奇妙です。
誰かが手がかりを得ましたか?
ありがとう!
編集1:
FileAppenderまたはConsoleAppenderをラップ/装飾することで動作は厳密に同じです(log4netの公式構成サンプルにConsoleAppenderをラップ/装飾する基本的なBufferingForwardingAppenderの例がありますが、パフォーマンスに関する具体的な言及はありません)。
Log.Debug()
調査/プロファイリングを行った後、ほとんどの時間はBufferingForwardingAppender内で台無しになっていることがわかります。具体的には、WindowsIdentity.GetCurrent()の呼び出しで...前のサンプルで..を呼び出すたびに呼び出されます(上記のサンプルソースで100K回)。
このメソッドの呼び出しは非常にコストがかかることが知られており、回避または最小化する必要があります。ログイベントごとに呼び出される理由がわかりません。私は本当に何かを完全に誤って構成しているのですか/何か明らかなものが見られないのですか、それともどこかにバグがあるのですか、これは私が今理解しようとしていることです...
部分的な呼び出しスタックは次のとおりです。
- AppenderSkeleton.DoAppend
- BufferingAppenderSkeleton.Append
- LoggingEvent.FixVolatileData
- LoggingEvent.get_UserName()
の呼び出しget_LocationInformation()
もFixVolatileDataで行われ、パフォーマンスコストも高くなります(毎回スタックトレースをキャプチャします)。
私は今、この非常にコストのかかるFixVolatileData呼び出し(少なくとも要求された修正に対して)がこのコンテキストの各ログイベントで発生するのに対し、ラップされたアペンダーを直接通過する(ConsoleAppender / FileAppender ..を直接通過する)ことがこの種の実行を行わない理由を理解しようとしています。手術。
誰かがこのすべてに対する答えを得ない限り、フォローする今後のアップデート;)
ありがとう!