【发布时间】:2014-08-21 04:32:48
【问题描述】:
我正在使用最新的 NLog v3.1,并且对如何在运行时设置日志记录级别有疑问。我的 NLog.config 文件中只有一个目标和记录器。记录器名称 = "*" 和 minlevel = "Info"。我在模块中有以下代码来声明记录器以及函数 GetLoggingLevel,我可以传入记录器名称以检索它的级别。但是,如何设置日志记录级别?目前我必须打开 NLog.config XML 并修改 XML 中的 minlevel。由于我有 autoReload = "true",它会生效 - 但希望有一种方法可以使用 NLog 方法/属性来设置它。
Imports System.Xml
Imports NLog
Module modLogging
Private m_Log As Logger
Public ReadOnly Property Log As Logger
Get
If (m_Log Is Nothing) Then
m_Log = LogManager.GetCurrentClassLogger
End If
Return m_Log
End Get
End Property
Public Sub LogShutdown()
LogManager.Shutdown()
End Sub
Public Function GetLoggingLevel(ByVal loggerName) As String
Dim level As String = String.Empty
If (LogManager.GetLogger(loggerName).IsInfoEnabled) Then
level = "Info"
ElseIf (LogManager.GetLogger(loggerName).IsErrorEnabled) Then
level = "Error"
ElseIf (LogManager.GetLogger(loggerName).IsDebugEnabled) Then
level = "Debug"
End If
Return (level)
End Function
有了这个,我可以在我的项目中轻松调用 Log.Info("some text") 或 Log.Error("some error") 等。我可以获得当前级别并将其显示给用户,但我希望用户能够将日志记录级别更改为调试、信息、错误等,但我无法弄清楚如何在配置文件中设置 minlevel在运行时无需直接加载和修改配置 XML。任何帮助将不胜感激。
最诚挚的问候
【问题讨论】: