나는 최신 NLog v3.1을 사용 중이며 런타임에 로깅 수준을 설정하는 방법에 대해 질문이 있습니다. 내 NLog.config 파일에는 대상과 로거가 하나만 있습니다. 로거 이름 = "*"및 minlevel = "정보". 다음 코드는 Logger를 GetLoggingLevel 함수와 함께 선언하여 모듈을 로거 이름으로 전달하여 레벨을 가져올 수 있도록합니다. 그러나 로깅 수준을 어떻게 설정할 수 있습니까? 현재 NLog.config XML을 열고 XML에서 minlevel을 수정해야합니다. AutoReload = "true"로 설정했기 때문에 NLog 메서드/속성을 사용하여 설정하는 방법이 있었으면합니다. 이와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을 설정하는 방법을 알 수 없습니다. 실행시 config.xml을 직접 수정하지 않고 &을로드하지 않아도됩니다. 어떤 도움을 주시면 감사하겠습니다.
친절한 안부
같은 콘솔 응용 프로그램은 당신에게 크리스티안 감사 : 예를 들어, 같은 NLog의 설정과 작은 프로젝트를 사용. 로깅 수준을 변경하는 유일한 방법입니까? 내 config 파일에 minlevel을 지정하고 디버그, 정보 및 오류 사이에서 간단히 변경하려고했습니다. 구성 XML에서 레벨 태그를 사용하지 않습니다 (예 : 레벨 = "디버그, 정보, 오류"). 그것들을 사용하면 어떤 차이가 있는지 모르겠지만 더 높은 수준의 로깅을 유지하려고합니다 (예 : Info가 활성화되어 있으면 오류가 계속 기록됨). Level에 대한 로깅을 사용하지 않도록 설정하면 레벨을 반복하고 사용자가 선택한 것보다 "낮음"인 것을 비활성화해야합니다. 그것에 대해 어떻게 생각하는지 잘 모릅니다. 고맙습니다! – DataCrypt
특정 수준을 사용하지 않으면 지정된 수준과 그 아래의 수준 만 사용하지 않도록 설정됩니다. 따라서 'info'를 비활성화하면 'trace', 'debug'및 'info'와 같은 레벨을 기록하지 않지만 '경고', '오류'및 '치명적'을 기록합니다. –
런타임 중에 특정 로거에 대한 minlevel을 변경하기 만하면됩니까? – pjdupreez