[C#] Log4net은 로그 파일을 작성하지 않습니다.


Answers

이 FAQ 페이지를 사용하십시오 : Apache log4net Frequently Asked Questions

아래의 3/4 정도는 응용 프로그램 추적을 사용하여 log4net 디버깅을 활성화하는 방법을 알려줍니다. 이렇게하면 문제가있는 곳을 알 수 있습니다.

기본 사항은 다음과 같습니다.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <appSettings>
        <add key="log4net.Internal.Debug" value="true"/>
    </appSettings>
</configuration>

표준 출력에서 ​​트레이스를 볼 수 있습니다.

Question

Log4net을 사용하여 간단한 시나리오를 만들었지 만 메시지가 로그 파일에 추가되지 않아 내 애 펜더가 작동하지 않는 것 같습니다.

web.config 파일에 다음을 추가했습니다.

<configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" requirePermission="false"/>        
</configSections>

<log4net>
    <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
            <file value="D:\MyData\Desktop\LogFile.txt" />
            <appendToFile value="true" />
            <encoding value="utf-8" />
            <layout type="log4net.Layout.SimpleLayout" />
    </appender>


    <root>
        <level value="INFO" />
        <appender-ref ref="LogFileAppender" />
    </root>
</log4net>

글로벌 ASAX 파일에서 나는 다음과 같이 덧붙였다.

ILog logger = LogManager.GetLogger(typeof(MvcApplication));

Application_Start 메소드 내에서 :

logger.Info("Starting the application...");

나는 무엇을 잘못 했는가?




필자는 로그 파일의 위치를 ​​옮겼고 파일의 이름을 다른 것으로 변경했을 때만 다시 시작되었습니다.

이미 존재하는 동일한 이름의 로그 파일이 있으면 아무 일도 일어나지 않는 것 같습니다.

그런 다음 이전 파일의 이름을 변경하고 config의 로그 파일 이름을 다시 원래대로 변경했습니다.




또한이 그림과 같이 [log4net] .config에 대해 "항상 복사" 옵션이 선택되어 있는지 확인하십시오.




끼워 넣다:

 [assembly: log4net.Config.XmlConfigurator(Watch = true)]

AssemblyInfo.cs 파일의 끝에