source

log4net을 어떻게 구성하면 로그가 생성됩니다.DebugEnabled가 참입니까?

manysource 2023. 5. 25. 22:10

log4net을 어떻게 구성하면 로그가 생성됩니다.DebugEnabled가 참입니까?

Visual Studio 2005에서 ASP.NET 응용 프로그램에서 log4net을 사용하려고 합니다.나는 로거의 예를 다음과 같이 선언했습니다.

Private Shared ReadOnly log As ILog = LogManager.GetLogger("")

다음과 같은 방법으로 사용하려고 합니다.

If log.IsDebugEnabled Then
   log.Debug("Integration Services Constructed")
End If

내 구성은 다음과 같습니다.

<log4net>

    <root>
        <level value="DEBUG" />
        <appender-ref ref="RollingFileAppender" />
    </root>

    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
        <file value="..\\logs\\logfile.log"/>
        <appendToFile value="true"/>
        <rollingStyle value="Size"/>
        <maxSizeRollBackups value="10"/>
        <maximumFileSize value="1MB"/>
        <staticLogFileName value="true"/>
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>
        </layout>
        <filter type="log4net.Filter.LevelRangeFilter">
            <param name="LevelMin" value="DEBUG" />
            <param name="LevelMax" value="FATAL" />
        </filter>
    </appender>

</log4net>

불행하게도,log.IsDebugEnabled항상 거짓입니다.
디버깅 메시지만 기록할 수 있도록 log4net을 구성하려면 어떻게 해야 합니까?

로그 관리자를 호출하기 전에.GetLogger(""")

당신은 log4net에 전화해야 합니다.Config.XmlConfigurator입니다.구성(); ASP.NET 앱에서 이 호출을 Application_Start에 넣을 수 있습니다.

네, 앤슨이 말한 대로 하세요.또한 클래스 라이브러리에서 구성을 호출하는 경우 클래스에 속성을 추가하여 이 작업을 수행할 수 있습니다.

[assembly: XmlConfigurator(Watch = true)]

사용 중인 경우log4net.config파일, 대신 그렇게 사용:

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]

log4net에 대해 별도의 구성 파일을 사용하는 경우 다음을 수행하십시오. 다른 모든 설정 지침에 따라 Visual Studio Solution Explorer에서 파일을 마우스 오른쪽 단추로 클릭하고 속성을 선택한 다음 "Advanced" 옵션 그룹을 확장하고 "Copy To Output Directory" 값을 "Copy always"로 설정하십시오.그러면 마법이...:) 건배!!

구성 파일이 아닌 코드에서 log4netup을 설정하는 경우 다음을 호출할 수 있습니다.log4net.Config.BasicConfigurator.Configure전에GetLogger.

로그를 사용하기 전에 이 방법을 사용합니다.

log4net.Config.XmlConfigurator입니다.구성();

App.Config에서 설정은 다음과 같아야 합니다.

<root>
      <level value="ALL" />
      <appender-ref ref="AppenderName" />
    </root>

VB.NET -

<Assembly: log4net.Config.XmlConfigurator(Watch:=True)> 

언급URL : https://stackoverflow.com/questions/220021/how-do-i-configure-log4net-so-that-log-isdebugenabled-is-true