我正在使用Microsoft EventSource Library來實現我的Web應用程序的日誌記錄機制。爲什麼通道「調試」和「分析」不適用於我的ETW-EventSource實施?
該庫提供四個日誌事件通道:「Admin」,「Operational」,「Debug」和「Analytic」。管理員和操作頻道工作正常,頻道可見,我可以記錄事件。
出於某種原因,調試和分析通道不會出現在事件查看器,你可以在這個截圖中看到:
下面你可以看到我的EventSource實現。此外,我已經上傳了完整的Visual Studio項目,包括一個控制檯測試應用程序here。
有誰知道爲什麼只有Admin和Operational可用?
public static partial class WebAppEventSourceHandler
{
[EventSource(Name = "Company-MyProject-WebApp")]
private sealed class WebAppEventSource : EventSource
{
[Event(1, Message = "Instance: [{0}] Exception Type: [{1}] Exception Message: [{2}] Exception Stack Trace: [{3}] Inner Exception Type: [{4}] Inner Exception Message: [{5}] Inner Exception Stack Trace: [{6}]",
Channel = EventChannel.Admin, Level = EventLevel.Critical, Version = 1)]
internal void UnhandledException(string instance, string exceptionType, string exceptionMessage, string exceptionStackTrace,
string innerExceptionType, string innerExceptionMessage, string innerExceptionStackTrace)
{
WriteEvent(1, instance, exceptionType, exceptionMessage, exceptionStackTrace, innerExceptionMessage,
innerExceptionType, innerExceptionMessage, innerExceptionStackTrace);
}
[Event(2, Message = "Instance: [{0}] Controller: [{1}] Action: [{2}] Client Message: [{3}] Server Message: [{4}] Parameter: [{5}]",
Channel = EventChannel.Admin, Level = EventLevel.Error, Version = 1)]
internal void LogControllerActionError(string instance, string controller, string action,
string clientSideMessage, string serverSideMessage, string parameter)
{
WriteEvent(2, instance, controller, action, clientSideMessage, serverSideMessage, parameter);
}
[Event(3, Message = "Instance: [{0}] Controller: [{1}] Action: [{2}] Client Message: [{3}] Server Message: [{4}] Parameter: [{5}]",
Channel = EventChannel.Operational, Level = EventLevel.Warning, Version = 1)]
internal void LogControllerActionWarning(string instance, string controller, string action,
string clientSideMessage, string serverSideMessage, string parameter)
{
WriteEvent(3, instance, controller, action, clientSideMessage, serverSideMessage, parameter);
}
[Event(4, Message = "Instance: [{0}] Controller: [{1}] Action: [{2}] Message: [{3}] Server Parameter: [{4}]",
Channel = EventChannel.Operational, Level = EventLevel.Informational, Version = 1)]
internal void LogControllerActionInfo(string instance, string controller, string action,
string message, string parameter)
{
WriteEvent(4, instance, controller, action, message, parameter);
}
[Event(5, Message = "Instance: [{0}] Controller: [{1}] Action: [{2}] Message: [{3}] Server Parameter: [{4}]",
Channel = EventChannel.Debug, Level = EventLevel.Verbose, Version = 1)]
internal void LogControllerActionDebug(string instance, string controller, string action,
string message, string parameter)
{
WriteEvent(5, instance, controller, action, message, parameter);
}
[Event(6, Message = "Instance: [{0}] Controller: [{1}] Action: [{2}] Message: [{3}] Server Parameter: [{4}]",
Channel = EventChannel.Analytic, Level = EventLevel.Verbose, Version = 1)]
internal void LogControllerActionAnalytic(string instance, string controller, string action,
string message, string parameter)
{
WriteEvent(6, instance, controller, action, message, parameter);
}
}
}
我用這個CMD片斷以註冊的EventSource:
C:\ CustomEventSources> wevtutil.exe IM EventSourceExample.Company-MyProject-WebApp.etwManifest.man/RF:「C:\ CustomEventSources \ EventSourceExample.Company-MyProject的-WebApp.etwManifest.dll 「/mf:"C:\CustomEventSources\EventSourceExample.Company-MyProject-WebApp.etwManifest.dll」
你有沒有激活,以顯示分析日誌,在事件查看器的選項的? – magicandre1981
謝謝。而已。我不知道我必須明確地激活它。 –
好的,我發佈它作爲答案。 – magicandre1981