我正在使用最新的NLog v3.1,在运行时设置日志级别时有一个问题。我的NLog.config文件中只有一个目标(target)和一个记录器(logger)。记录器名称为"*",最小级别(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("一些文本")或Log.Error("一些错误")等方法。 我可以获取当前级别并将其显示给用户,但我希望用户能够更改日志记录级别为调试、信息、错误等,但我无法弄清如何在运行时设置配置文件中的minlevel而不必直接加载和修改配置XML。