簡體   English   中英

“IDictionary”類型的最后一個參數的目的是什么? <String, String> `在`EventListener.EnableEvents`方法中?

[英]What is the purpose of last argument of type `IDictionary<String, String>` in the `EventListener.EnableEvents` method?

我試圖找出如何在最后一個參數( IDictionary<String, String>的方法) EventListener.EnableEvents(EventSource, EventLevel, EventKeywords, IDictionary<String, String>)影響的方法的行為。

我已經檢查了MSDN文檔,但描述不清楚,沒有示例如何使用它。 什么是事件的參數以及它們如何在字典中指定? 如果有人可以舉一個例子,那就不僅僅是完美了。

EventListener.EnableEvents中的IDictionary<String, String>是命令參數,並傳遞給EventSource。 基本上它是EventSource內置的可擴展性機制。 例如,自定義事件源可以覆蓋OnEventCommand並響應任意命令。

System.Diagnostics.Tracing.EventSource當前支持的命令參數是“ActivitySamplingStartEvent”,“ActivitySampling”和“EtwSessionKeyword”。

以下是一個關於如何使用語義記錄應用程序塊采樣和過濾事件的示例:

var listener = new ObservableEventListener();

listener.EnableEvents("MyCustomEventSource", 
         EventLevel.Informational, Keywords.None,
         new Dictionary<string, string> {
           { "ActivitySampling", "true" }
         });

我找到的最接近答案的是MSDN上的這篇文章

您正在從應用程序記錄事件,並且還希望從事件源中捕獲未在應用程序中定義但與應用程序相關的事件。 例如,您希望在應用程序收到請求時捕獲ASP.NET引發的RequestStarted事件。 但是,您不希望收集所有這些事件,因為這些其他源生成的卷將使您的日志記錄存儲不堪重負,或者使分析日志記錄信息變得非常困難。 要解決此問題,您只需收集事件的樣本,而不是所有事件的樣本,並且還能夠過濾收集事件的進程。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM