問題タブ [log4net]
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.
asp.net - log4net が ThreadContext をログに記録していません
AsP.NET サイトで log4net を実行しています。メッセージを DB テーブルに記録できますが、ThreadContext プロパティが記録されません。例えば:
私の log4net.config は、これらの値をパラメーターとして SQL DB テーブルに追加します。
デバッグすると、これらの ThreadContext プロパティが設定されていることがわかりますが、DB には入っていません。
どうすればそれを機能させることができますか?
java - Log4j で現在の日付を含むようにログ ファイル名を設定する
log4j および log4net アペンダーのログ ファイル名を現在の日付に設定したいと考えています。日次ロールオーバーを実行していますが、現在のログ ファイルには日付がありません。ログ ファイル名の形式は次のようになります。
これを行うための最良の方法を知っている人はいますか?
編集:log4netでもこれを行いたいことを忘れていました。さらに、どのソリューションも JBoss で使用できる必要があります。
performance - log4net は System.Diagnostics.Trace よりかなり遅いですか?
log4net の使用とSystem.Diagnostics.Trace
ロギングの違いを調査しており、観察したパフォーマンスの違いに興味があります。
いくつかのシナリオで両方のロギング方法のパフォーマンスを比較するテスト アプリケーションを作成しましたが、log4net はTrace
クラスよりも大幅に遅いことがわかりました。たとえば、文字列フォーマットなしで 1,000 件のメッセージをログに記録するシナリオでは、1,000 回の試行での log4net の平均実行時間は 9.00 ミリ秒です。 Trace
平均 1.13ms で実行されます。多くのテスト ケースでは、log4net の実行時間に比較的大きなばらつきがあります。外れ値の長い実行の周期的な性質は、GC 干渉を示唆しているようです。CLR Profiler をいじってみると、生成された大量のオブジェクトに対して大量のコレクションが存在することが確認log4net.Core.LoggingEvent
されます (公平を期すために、大量のオブジェクトも生成されているように見えますが、log4net のように大きな分散は表示されません。 )Trace
Char[]
ここで私が心に留めていることの 1 つは、log4net は よりも約 9 倍遅いように見えますがTrace
、その差は 1,000 回の反復で 8 ミリ秒であることです。これは正確には重大なパフォーマンスの低下ではありません。それでも、予想される使用例のいくつかは、何十万回もログを記録するメソッドを呼び出す可能性があり、これらの数値は私の高速マシンからのものです。ユーザーの構成のより典型的な低速のマシンでは、違いは 170 ミリ秒から 11 ミリ秒であり、これは少し憂慮すべきことです。
このパフォーマンスは log4net の典型的なものですか、それとも log4net のパフォーマンスを大幅に向上させることができる落とし穴がありますか?
(注: 文字列の書式設定によって実行時間が変わる可能性があることは認識しています。リンゴとリンゴを比較しようとしていますが、書式設定のないテスト ケースと書式設定のあるテスト ケースがあります。文字列の書式設定が使用されているかどうかにかかわらず、log4net は比例して遅くなります。 )
これまでの話:
- Robert Gould がこの質問に対する最良の答えを持っています。log4net のパフォーマンスが
Trace
クラスよりもはるかに遅いことが一般的であるかどうかに主に興味がありました。 - Alex Shnayder の回答は興味深い情報ですが、実際には質問の範囲には該当しません。このロギングを導入する目的の半分は、稼働中のシステムでの論理的問題とパフォーマンス上の問題の両方のデバッグを支援することです。当社の顧客は、高価で大規模なハードウェア構成なしでは再現が難しいことが多い多くの風変わりなシナリオに当社の製品を入れています。私の主な懸念は、「ログを記録しない」と「ログを記録する」の間の大きなタイミングの違いが、バグが発生しないような方法でシステムに影響を与える可能性があることです。結局、パフォーマンス低下の規模は大きいですが、程度は小さいので、問題ないことを願っています。
logging - .NET Compact Framework のログ ライブラリ?
.NET コンパクト フレームワークをサポートする優れたログ ライブラリはありますか?
sharepoint - SharePoint と Log4Net
Web リクエスト、機能のアクティブ化、およびすべてのタイマーのために、log4net を SharePoint に統合するためのベスト プラクティスを探しています。
ファームに複数のサブプロジェクトがあり、Log4Net.config ファイルを 1 つだけにしたいと考えています。
[編集]
Web アプリケーション用に log4net を構成する必要があるだけでなく、これは簡単に行うことができます (global.asax と log4net.config ファイルを使用するため、Web アプリケーションをリロードせずにログ設定を変更できます)。非同期イベントをログに記録するには:
- イベント ハンドラー (ItemAdded など)
- タイマージョブ
- ...
vb.net - log.IsDebugEnabled が true になるように log4net を構成するにはどうすればよいですか?
Visual Studio 2005 の ASP.NET アプリケーションで log4net を使用しようとしています。ロガーのインスタンスを次のように宣言しました。
私は次の方法でそれを使用しようとしています:
これが私の構成です:
残念ながら、log.IsDebugEnabled
常に false です。
デバッグ メッセージのみをログに記録できるように log4net を構成するにはどうすればよいですか?
log4net - log4cxx と log4net の混合
log4cxx (RollingFile アペンダー) を使用していくつかのファイルにログを記録する C++ アプリケーションがあります。C# で記述された別のモジュールから同時に同じファイルにログインしたい。そのため、同じファイルを使用するように log4net を構成しましたが、新しいメッセージを取得できません。C++ ログを無効にすると、C# メッセージが表示されます。だから私はそれがロックの問題だと思い、log4cxxにファイルをロックしないように指示する構成オプションを探しました。log4netのMinimalLockモデルに入りましたが、log4cxxで何も見つかりませんでした...それができるかどうか、そしてどのように知っていますか?
前もって感謝します、
エルネスト・カレン
log4net - Log4net RolloverFileAppender を使用してアプリケーションの起動時にロールオーバーを強制するにはどうすればよいですか?
日付スタンプ付きの名前と 10Meg のファイル サイズ制限を使用するように、アプリケーションで Log4Net を構成します。
これにより、真夜中および 10Meg 制限に達するたびに、新しいファイルへのロールオーバーが自動的に発生します。また、アプリケーションを開始 (または終了) するたびに、ログを新しいファイルにロールオーバーしたいと考えています。
3 つすべてのロール オーバー動作を取得できますか?
asp.net - log4net と ASP.NET 3.5 の問題
log4net を ASP.NET 3.5 から動作させるのに問題があります。log4net を使用するのはこれが初めてで、パズルのピースが欠けているように感じます。
私のプロジェクトは log4net アセンブリを参照しており、私が知る限り、サーバーに正常にデプロイされています。
私のweb.configには以下が含まれています:
次のコードを使用してロガーをテストしています。
私の Global.asax では、次のことを行っています。
この時点で、他に何が間違っているのか考えられません。ログを保存しようとしているディレクトリは書き込み可能であり、別のディレクトリを試しても同じ結果が得られます。ファイルもログもありません。
助言がありますか?:-)
編集:ログファイルのパスと名前にいくつかの異なる形式を試しました。その中には、「..\..\InfoLog.html」、「InfoLog.html」、「logs\InfoLog.html」などが含まれます、誰かがそれが問題かどうか疑問に思っている場合に備えて。
編集: ルート ロガー ノードを log4net セクションに追加し直しました。サンプルからコピーするときに誤ってそれを省略しました。ルート ロガー ノードは次のようになります。
それでも、まだ運がありません。
.net - ロギング時に人々がキャプチャするフィールド - log4net
log4net のようなロガーを使用しているときに、アプリケーション内でログを記録するときに、人々が実際にキャプチャして使用するフィールドを知りたいと思っています。
これは、デバッグからテスト、運用にまで及ぶ可能性があり、シック クライアント アプリの場合もありますが、私は Web アプリ (つまり asp.net) のセマンティクスについてもっと考えています。
また、Web のコンテキスト (およびある程度のシック クライアントの場合) では、特定の要求に対して人々がログ全体の階層を構築する方法や、個々の要求を識別する方法などに興味があります。
乾杯アンソニー
以下は、私がこれまでにシネアップしたものです。
LogId、ServerName、ServerIP、ApplicationAbbrv、ApplicationVersion、ApplicationAppDomain、LogDateTime、LogTimeStamp、LogLogger、CodeType、CodeClass、CodeFile、CodeLocation、CodeMethod、CodeLine、CodeStackPosition、LogMessage、LogException、LogEntityOrigin、ContextSessionId、ContextUserName、ContextThread、ContextObjectPropertyData、ContextMachineId、ContextMachineIP