問題タブ [fileappender]
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.
log4j - 2 つの log4j ファイルアペンダーが同じファイルに書き込むことはできますか?
一体なぜそんなことをするのかという質問を少し忘れてください。何らかの理由で、2 つの FileAppender が同じファイルで構成されている場合、このセットアップは機能しますか?
multithreading - Log4Net FileAppender はスレッドセーフではありませんか?
log4net でログを記録できる何かのコンソールを顧客が持っていないため、ファイルにログを記録する必要があります。今、FileAppender はスレッドセーフではないことを読みました。異なるスレッドからログアウトするアプリ内のファイルにログを記録する方法はありますか、それとも一般的な代替手段は何ですか?
log4j - log4j、fileappender、tomcat6ログの質問
私は上記のトピックについて多くの質問を見てきましたが、これに対処するものはありません。log4jを使用して$CATALINA_BASE/logs/ディレクトリのカスタムファイルにログを記録しようとしています。log4j.xmlファイルを構成し、それを$ CATALINA_BASE /lib/ディレクトリーにコピーしました。
次の行を使用してロガーを作成します-
PatternLayoutレイアウト=新しいPatternLayout(); FileAppender appender = new FileAppender( "filename.txt");
これが私の問題です。FileAppenderにlog4j.xmlで構成したファイル名を使用させるにはどうすればよいですか?
自動的にそれを取得することを望んでいましたが、ファイル名を取得しないFileAppenderのコンストラクターはありません。
ファイルの名前を取得するには、log4j.xmlを読み取る必要がありますか?もしそうなら、なぜ世界でそのプロパティをxmlに設定する必要があるのですか?
どんな助けでも大歓迎です。
ありがとう、-Vas
logging - Log4Net と並列インスタンスからのロギング
プロジェクトで log4net を使用していますが、問題が 1 つあります。プログラムの主要な機能には時間がかかるため、ログを使用して情報を保存しています。ログをファイルに保存するためにFileAppenderを使用します。
私のアプリケーションは共有 (ローカル) フォルダーにあり、1 つのパスから実行されているアプリケーションの複数のインスタンスが存在する可能性があります。この場合、最初のプログラムからのみ情報をログに記録できました。ログ ファイルがロックされているため、アプリケーションの他のインスタンスは情報をログに記録できませんでした。
「log4net.Appender.FileAppender+MinimalLock」オプションを使用すると、情報が失われる場合があります。両方のインスタンスのすべてのログがファイルに保存されるわけではありません。
この問題を解決し、並列インスタンスから情報をログに記録するにはどうすればよいですか? また、「MinimalLock」オプションを使用した場合のパフォーマンスの低下はどうですか?
ありがとう。あなたの助けを願っています。
.net - log4net - ファイルの先頭に新しいエントリを書き込む FileAppender
ログファイルの先頭に新しいエントリを追加するように log4net で FileAppender を構成することは可能ですか? 現在、最後にエントリを追加しており、最新のエントリを読むには、ログ全体を下にスクロールする必要があります。最初から読んだほうが楽です。
c# - 複数のスレッドのパフォーマンスの問題があるlog4netFileAppenderへの書き込み
TickZoomは、独自の並列化ライブラリと複数のO / Sスレッドを使用して、マルチコアコンピューターをスムーズに利用できる非常に高性能なアプリです。
このアプリは、ユーザーが個別のO/SスレッドからLogAppenderに情報を書き込む必要があるというボトルネックにぶつかります。
FileAppenderはMinimalLock機能を使用して、各スレッドがファイルをロックして書き込み、次のスレッドが書き込むためにファイルを解放できるようにします。
MinimalLockが無効になると、log4netは、ファイルが別のプロセス(スレッド)によってすでにロックされているというエラーを報告します。
log4netがこれを行うためのより良い方法は、FileAppenderへの書き込みを処理する単一のスレッドを持ち、他のスレッドは単にメッセージをキューに追加することです。
このようにして、MinimalLockを無効にして、ロギングのパフォーマンスを大幅に向上させることができます。
さらに、アプリケーションはCPUを集中的に使用する作業を多く行うため、ファイルへの書き込みに別のスレッドを使用することでパフォーマンスが向上し、CPUがI/Oの完了を待機することがなくなります。
問題は、log4netがすでにこの機能を提供しているのかということです。もしそうなら、どのようにしてファイルへのスレッド書き込みを有効にしますか?おそらく、別のより高度なアペンダーはありますか?
そうでない場合は、log4netがすでにプラットフォームにラップされているため、TickZoomコードでこの目的のために別のスレッドとキューを実装することができます。
よろしくお願いいたします。ウェイン
編集:
おかげで、答えはおそらく何らかの方法でlog4netの拡張として独自のソリューションを開発することを示しているようです。そして、log4netがこの種のことを行わないことを明確に示しています。
さらに、重要なイベントの通知や情報のデバッグのために、主に人間が読めるメッセージを対象としたロギングシステムを「悪用」している可能性があることに気づきました。ソフトウェア出力のこの特定の部分は、システムの精度を検証する自動ツールにのみ実際に使用されます。
もちろん、デバッグや警告などの「通常の」方法でlog4netも使用します。
ただし、これらはデバッグログやユーザー通知ログというよりも「トランザクションログ」に似ています。具体的には、これらのログを直接人間が読める形式にする必要はありません。必要に応じて、ある種の「ビューア」がコンテンツをASCII形式で表示できます。
したがって、これらのトランザクションタイプのログを高速バイナリストレージに書き込むことを計画します。
おかげで、以下の両方の答えは、私たち自身のソリューションを開発するための素晴らしいナッジだったようです。
log4net - FileAppender によるロギング
ここに簡単な質問があります:
log4net を使用してファイルに情報を記録しようとしています。< file value="log-file.txt" /> を app.config のアペンダー タグに書き込みました。log-file.txt がどこに配置されているのか、自動的に作成されるのか、自分で作成する必要があるのか 疑問に思っています。
私はc#を使用しています - wpf
java - Java ログバック FileAppender ファイル パターン
私はこのようなアペンダーを持っています。
${date} と ${thread} を現在の日付と現在のスレッド名にしたい。どうすればできますか?
c# - log4net fileappender が Outlook ThisAddIn.cs で log-file.txt を作成しない
ここで何が問題なのかわかりません。Outlook アドインを使用して、log4net でログ ファイルに書き込みたいだけです。私のapp.configファイルには次のものがあります:
私のスタートアップ クラス ThisAddIn.cs に関連するステートメントを次に示します (コメントは、私が試したバリエーションを示しています)。
これに関する私の調査では、project/bin/Debug フォルダーにある log-file.txt というファイルに書き込む必要がありますが、何も作成されていません。Debugger を使用してコードにステップ インすると、ログ オブジェクトのメソッドは問題なく動作しているように見えます。また、同じ結果が得られないファイルに対して、次の絶対指定を試しました。
誰かが私の間違いを見つけることができますか?
date - FileDatePatternConverter を使用した log4j FileAppender
次のような構成でファイル名のパターンを使用しようとしています。
これは機能しません。正しい構文とは?