【发布时间】:2015-09-17 10:01:35
【问题描述】:
这是一个基类,所以我完全在运行时配置 EventLogAppender,如下所示:
Public MustInherit Class EventLogger
Public Sub Test(EventSource As String)
Dim oAppender As IAppender
oAppender = New EventLogAppender
With DirectCast(oAppender, EventLogAppender)
.ApplicationName = EventSource
.Category = 0 ' <========== Would like to set this value when logging
.EventId = 0
.Layout = New PatternLayout("%level: {0} %message%newline".ToFormat(EventSource))
.ActivateOptions()
End With
BasicConfigurator.Configure(oAppender)
Me.Logger = LogManager.GetLogger(Me.GetType)
Me.Logger.Info("Test")
End Sub
Private Logger As ILog
End Class
Public Module Extensions
<Extension>
Public Function ToFormat(Template As String, ParamArray Values As Object()) As String
Return String.Format(Template, Values)
End Function
End Module
在构建 appender 时设置事件类别很容易,但我希望类别与日志级别相对应。
有没有办法做到这一点,而不必在调用记录器时为每个日志级别构建一个特殊的附加程序?这肯定会成为性能杀手。
看起来不像,但我可能是错的。我以前也遇到过一次。
【问题讨论】: