問題タブ [tracesource]
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.
.net - TraceListener は WCF イベントをトレースしますが、自己生成イベントはトレースしません
私たちのショップには、Web サービス呼び出しを介してリポジトリにイベントを送信する TraceListener があります。独自の TraceSource に使用しますが、System.ServiceModel や System.Activities などの他の TraceSource にも使用できるようにしたいと考えています。
問題は、WCF クライアント呼び出しを使用して TraceListener 内で書き込みを行うことです。System.ServiceModel tracesource がリスナーにアタッチされている場合、ループに陥ります。たとえば、内部クライアント呼び出しを起動するイベントをトレースします。 WCF tracesource が TraceEvent を起動し、ループが発生します。
内部 WCF 呼び出しで WCF トレースソースが起動しないようにするにはどうすればよいですか?
c# - System.Diagnostics.TraceSource のトレース出力の形式
次のコード:
次の出力が生成されます。
MyApplication 情報: 0 : Hello World
トレース出力の先頭にある「MyApplication Information: 0 :」の部分は、TraceSource クラス自体からのものです。
ただし、行の先頭にタイムスタンプを付ける必要があり、「情報」も「情報」に変更したいと考えています。
次のように構成できるように、トレース出力の自由度を高める方法はありますか?
13:03:00 - MyApplication情報: Hello World
数時間試しましたが、成功しませんでした。私が何をしても、出力行の先頭には常に、定義済みのこの定数「MyApplication Information: 0 : Hello World」出力があります。
MSDN のドキュメントにも、役立つ情報はありませんでした。
c# - .NET プログラムで TraceSource 名はどのように解決されますか?
TraceSource クラスの MSDN ドキュメントには、app.config ファイルが TraceSource インスタンスの情報を一覧表示する方法の例があります。
http://msdn.microsoft.com/en-us/library/system.diagnostics.tracesource.aspx
ただし、TraceSource 値が格納されている場所に関する情報はありません...既存の TraceSource オブジェクトはどこに格納されていますか? それら(編集:構成されたインスタンスを意味します)はいつ構築されますか?TraceSource オブジェクトを作成するときに、TraceSource オブジェクトは新しいインスタンスの代わりに名前付きインスタンス (編集: インスタンスを構成する必要があります) を返す方法をどのように知っていますか? Reflection を使用せずに、既存の TraceSource オブジェクトのリストを見つけることはできますか?
system.diagnostics - TraceSource を介して TraceListener.Write(object) を呼び出す方法
特定のオブジェクト (LogMessage) が受信されたときにのみログに記録するカスタム TraceListener 実装があります。メソッドで直接使用する場合、これはすべてうまく機能しTrace.Write(object)
ます。
パフォーマンス上の理由から、リスナーを分離したいので、関係のないトレース メッセージはすべてリスナーに渡されません。したがって、このリスナーのみがアタッチされた特定の TraceSource を作成しました。
現在、TraceSource を使用してカスタム ログ オブジェクト (LogMessage) をリスナーに渡すのに苦労しています。は、メソッドではなく、TraceSource.TraceData(TraceEventType, int, object)
常にメソッドを呼び出します。TraceListener.Write(string)
TraceListener.Write(object)
TraceSource を使用してリスナーにカスタム オブジェクトを渡す方法はありますか?
サンプルコード:
ありがとうトーマス
c# - Task.Runを待って終了時にトレースActivityIdを変更します
Trace.CorrelationManager.ActivityIdを使用してログエントリを相互に関連付けようとしています。しかし、私はこのコードがいつ終了するかを見つけています:
ActivityIdは、入力されたときの状態から変更されました。LongRunningMethod()では正しいですが(メソッドにはさまざまなトレースイベントがあります)、awaitが完了したときにのみ変更されるようです。
私の質問は、なぜActivityIdが変更されたのですか?
このコード行は、非同期で宣言された関数内にあり、MVCプロジェクトの非同期コントローラーアクションによって呼び出されます。
おそらく私はasync/awaitまたはTaskメソッドを間違って使用していますか?基本的に、すべての「LongRunningMethod」を非同期で同時に開始し、すべてが終了するまで待機する必要があります。
asp.net - TraceSource : カスタム TraceListener が機能しない
TraceSource を使用して ASP.Net アプリケーションをログに記録しています。出力形式を変更するには、TextwriterListener の代わりに独自の TraceListener を作成する必要があります。
// 呼び出す
エラーなし。出力ファイルにデータが印刷されません。私は ASP.Net を初めて使用します。この問題の解決を手伝ってくれる人はいますか?
アップデート
別の方法を試しました。ただし、構成エラーが発生します。
例外の詳細: System.Configuration.ConfigurationErrorsException: WebTracing.CustomTraceListener、WebTracing を作成できませんでした。
注: 通常の TextWriterListener は正常に動作しています。しかし、出力文字列をフォーマットするにはカスタムリスナーが必要です。
.net - 「アスペクトベーストレーシング」にメリットはありますか?
明確にするために、「アスペクト」の意味は、アプリケーションの機能の水平要素であり、アスペクト指向プログラミングのようにすべてのメソッド呼び出しをインターセプトするわけではありません。
.NET Trace インフラストラクチャ、特にTraceSource
オブジェクトの美しさを発見しました。この初心者のように、メソッドの開始と終了、エラーなどをトレースするために、各クラスに独自の TraceSource を与えました。
しかし、今はTraceSource
側面ごとに 1 つの方が良いと思います。たとえば、駐車場内の車両移動の記録をインポートして、駐車料金を計算し、請求システム (WHMCS) にメッセージを投稿するアプリがあります。
TraceSource
次のように、一連の静的プロパティを持つクラスが必要だと考えています。
このようにして、たとえば、Traces.Pricing.VehicleMovements ("Terminal Id not configured");
そのシナリオを見つけた任意のクラスで、より適切にグループ化され、よりまとまりのあるログまたはその他の出力を得ることができます。
これは良い考えですか?おまけとして、トレース戦略とパターンに関するリソースへのいくつかのポインターは素晴らしいでしょう、ありがとう.
.net - -all- .NET Trace Sources にリスナーを使用するように指示するにはどうすればよいですか?
トレース ソースを含むさまざまなクラス ライブラリがあります。正常に動作します。
私の.config
ファイルでは、どのソースがテキストをリスナーにダンプするかを指定する必要があります。うまくいきました。
しかし、すべて同じスイッチ値とフィルタータイプなどを持つ約20のソースがあります.
つまり、すべてのライブラリのすべてのソースに対して、このスイッチ値、このフィルター、およびこのリスナーを使用するという言い方があります。
実際には、すべてのトレース情報をこの/これらのリスナーにダンプします。
これはできますか?
.net - TraceSource を静的として作成する理由
クラスの TraceSource を作成する人々について私が見たすべての例では、常に静的として定義されています
なぜこれをやり直す
メリット/デメリットは?
.net - TraceSource リスナー アプリケーションを構築するにはどうすればよいですか?
VS2012 から独立したウィンドウを実際に使用して、他のモニターで実行して、TraceSource メッセージが書き込まれたときにそれを表示できますか? これにより、クロスプロセスが少し複雑になることはわかっていますが、プロセス間でデータを共有する方法はたくさんあると思います。これには、メモリ内データベース、最悪の場合ディスク上のデータベースなどがあります。データはリスニング アプリで永続化できる必要があるだけなので、リスナー ダッシュボード アプリへの Remoting 呼び出しを使用するインプロセス トレース リスナーでさえあるかもしれません。
それとも、これを行うことができるものはすでにありますか?