LoggingEventSource 类

定义

LoggingEventSource 是连接所有基于 ILogger 的日志记录和 EventSource/EventListener 日志记录的桥。

public ref class LoggingEventSource sealed : System::Diagnostics::Tracing::EventSource
[System.Diagnostics.Tracing.EventSource(Name="Microsoft-Extensions-Logging")]
public sealed class LoggingEventSource : System.Diagnostics.Tracing.EventSource
[<System.Diagnostics.Tracing.EventSource(Name="Microsoft-Extensions-Logging")>]
type LoggingEventSource = class
    inherit EventSource
Public NotInheritable Class LoggingEventSource
Inherits EventSource
继承
LoggingEventSource
属性

示例

以下示例演示如何使用 EventListener 获取 ILogging 信息:

class MyEventListener : EventListener 
{
    protected override void OnEventSourceCreated(EventSource eventSource) 
    {
        if (eventSource.Name == "Microsoft-Extensions-Logging") 
        {
            // initialize a string, string dictionary of arguments to pass to the EventSource.
            // Turn on loggers matching App* to Information, everything else (*) is the default level (which is EventLevel.Error)
            var args = new Dictionary<string, string>() { { "FilterSpecs", "App*:Information;*" } };
            // Set the default level (verbosity) to Error, and only ask for the formatted messages in this case.
            EnableEvents(eventSource, EventLevel.Error, LoggingEventSource.Keywords.FormattedMessage, args);
        }
    }

    protected override void OnEventWritten(EventWrittenEventArgs eventData) 
    {
        // Look for the formatted message event, which has the following argument layout (as defined in the LoggingEventSource.
        // FormattedMessage(LogLevel Level, int FactoryID, string LoggerName, string EventId, string FormattedMessage);
        if (eventData.EventName == "FormattedMessage")
            Console.WriteLine("Logger {0}: {1}", eventData.Payload[2], eventData.Payload[4]);
    }
}

注解

可以通过启用名为 Microsoft-Extensions-Logging的 EventSource 来打开此日志记录。

启用 EventSource 时,设置的 EventLevel 将明显转换为与 ILogger 关联的级别 (因此 Debug = verbose,Informational = Informational ...严重 == 严重)

这使你可以通过简单的方式按事件级别进行筛选。

若要进行精细控制,可以指定名为 的 FilterSpecsEventSource 参数。

参数 FilterSpecs 是一个以分号分隔的规范列表。 其中每个规范都为

SPEC =                          // empty spec, same as *
     | NAME                     // Just a name the level is the default level
     | NAME : LEVEL            // specifies level for a particular logger (can have a * suffix).

如果 Name 是 ILogger (大小写) 的名称,则 Name 可以具有 *,它充当通配符 AS A SUFFIX。 因此,Net* 将匹配以“Net”开头的任何记录器。

LEVEL 为数字或 LogLevel 字符串。 0=跟踪,1=调试,2=信息,3=警告,4=错误,严重=5 这指定关联模式的级别。 如果未指定数字(规范的第一种形式),则为 EventSource 的默认级别。

如果某个特定名称与多个模式匹配,则使用第一个匹配项。

除了 level 和 FilterSpec 参数外,还可以设置 EventSource 关键字。 请参阅下面的关键字定义,但基本上你可决定是否要使用该关键字

  • Keywords.Message - 获取事件,其中包含已分析格式的数据。
  • Keywords.JsonMessage - 获取一个事件,其中包含分析形式的数据,但作为 JSON blob (未按参数进行细分...)
  • Keywords.FormattedMessage - 获取数据格式为字符串的事件

预计一次只打开其中一个关键字,但可以通过三种不同的方式打开它们并获取记录的相同数据。

属性

ConstructionException

获取在事件源的构造过程中引发的任何异常。

(继承自 EventSource)
Guid

此事件源的唯一标识符。

(继承自 EventSource)
Name

从事件源中派生出来的类的友好名称。

(继承自 EventSource)
Settings

获取应用于此事件源的设置。

(继承自 EventSource)

方法

Dispose()

释放 EventSource 类的当前实例所使用的所有资源。

(继承自 EventSource)
Dispose(Boolean)

释放 EventSource 类使用的非托管资源,并可以选择释放托管资源。

(继承自 EventSource)
Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetTrait(String)

获取与指定键关联的特性值。

(继承自 EventSource)
GetType()

获取当前实例的 Type

(继承自 Object)
IsEnabled()

确定是否已启用当前事件源。

(继承自 EventSource)
IsEnabled(EventLevel, EventKeywords)

确定是否已启用具有指定级别和关键字的当前事件源。

(继承自 EventSource)
IsEnabled(EventLevel, EventKeywords, EventChannel)

确定是否对带有指定级别、关键字和通道的事件启用了当前事件源。

(继承自 EventSource)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
OnEventCommand(EventCommandEventArgs)

当该控制器更新当前事件源时调用。

(继承自 EventSource)
ToString()

获得当前事件源实例的字符串表示形式。

(继承自 EventSource)
Write(String)

使用指定的名称和默认选项而非字段来写入事件。

(继承自 EventSource)
Write(String, EventSourceOptions)

使用指定的名称和选项而非字段来写入事件。

(继承自 EventSource)
Write<T>(String, EventSourceOptions, Guid, Guid, T)

使用指定的名称、选项、相关活动和事件数据写入事件。

(继承自 EventSource)
Write<T>(String, EventSourceOptions, T)

使用指定的名称、事件数据和选项写入事件。

(继承自 EventSource)
Write<T>(String, EventSourceOptions, T)

使用指定的名称、选项和事件数据写入事件。

(继承自 EventSource)
Write<T>(String, T)

使用指定的名称和数据写入事件。

(继承自 EventSource)
WriteEvent(Int32)

通过使用提供的事件标识符写入事件。

(继承自 EventSource)
WriteEvent(Int32, Byte[])

通过使用提供的事件标识符和字节数组自变量写入事件。

(继承自 EventSource)
WriteEvent(Int32, EventSource+EventSourcePrimitive[])

使用提供的事件标识符和可变数量的事件源基元写入事件。

(继承自 EventSource)
WriteEvent(Int32, Int32)

通过使用提供的事件标识符和 32 位整数参数写入事件。

(继承自 EventSource)
WriteEvent(Int32, Int32, Int32)

通过使用提供的事件标识符和 32 位整数参数写入事件。

(继承自 EventSource)
WriteEvent(Int32, Int32, Int32, Int32)

通过使用提供的事件标识符和 32 位整数参数写入事件。

(继承自 EventSource)
WriteEvent(Int32, Int32, String)

使用提供的事件标识符、32 位整数和字符串自变量写入事件。

(继承自 EventSource)
WriteEvent(Int32, Int64)

通过使用提供的事件标识符和 64 位整数自变量写入事件。

(继承自 EventSource)
WriteEvent(Int32, Int64, Byte[])

使用指定的标识符、64 位整数和字节数组参数写入事件数据。

(继承自 EventSource)
WriteEvent(Int32, Int64, Int64)

通过使用提供的事件标识符和 64 位参数写入事件。

(继承自 EventSource)
WriteEvent(Int32, Int64, Int64, Int64)

通过使用提供的事件标识符和 64 位参数写入事件。

(继承自 EventSource)
WriteEvent(Int32, Int64, String)

使用提供的事件标识符、64 位整数和字符串自变量写入事件。

(继承自 EventSource)
WriteEvent(Int32, Object[])

通过使用提供的事件标识符和自变量数组写入事件。

(继承自 EventSource)
WriteEvent(Int32, String)

通过使用提供的事件标识符和字符串自变量写入事件。

(继承自 EventSource)
WriteEvent(Int32, String, Int32)

通过使用提供的事件标识符和自变量写入事件。

(继承自 EventSource)
WriteEvent(Int32, String, Int32, Int32)

通过使用提供的事件标识符和自变量写入事件。

(继承自 EventSource)
WriteEvent(Int32, String, Int64)

通过使用提供的事件标识符和自变量写入事件。

(继承自 EventSource)
WriteEvent(Int32, String, String)

通过使用提供的事件标识符和字符串自变量写入事件。

(继承自 EventSource)
WriteEvent(Int32, String, String, String)

通过使用提供的事件标识符和字符串自变量写入事件。

(继承自 EventSource)
WriteEventCore(Int32, Int32, EventSource+EventData*)

通过使用提供的事件标识符和事件数据,创建新的 WriteEvent 重载。

(继承自 EventSource)
WriteEventWithRelatedActivityId(Int32, Guid, Object[])

写入一个指示当前活动与其他活动相关的事件。

(继承自 EventSource)
WriteEventWithRelatedActivityIdCore(Int32, Guid*, Int32, EventSource+EventData*)

写入一个指示当前活动与其他活动相关的事件。

(继承自 EventSource)

事件

EventCommandExecuted

当命令来自事件侦听器时出现。

(继承自 EventSource)

适用于