2017-02-28 5 views
0

이것은 로깅에 대한 나의 첫 번째 시도이며 비슷한 질문을 연구했지만 내 상황을 파악하지 못하는 것 같습니다. 아마 내가 벗어나기 위해 어떤 오류도 발생하지 않기 때문일 것입니다.Log4Net에서 .txt 파일을 만들지 못합니까?

단순히 Log4Net을 사용하여 .txt 파일을 만들려고합니다. web.config 또는 app.config가 없으므로 Log4Net을 설정하기위한 자체 구성 파일을 만들었습니다 (연구를 통해이 작업을 수행 할 수 있음을 알았습니다). 설정 파일은 다음과 같습니다 :

Log4Net.config

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
<configSections> 
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> 
</configSections> 
<log4net debug="true"> 
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> 
    <file value="C:\myFolder\TestLog.txt" />//******Nothing Is Being Created Here**** 
    <appendToFile value="true" /> 
    <rollingStyle value="Size" /> 
    <maxSizeRollBackups value="10" /> 
    <maximumFileSize value="10MB" /> 
    <staticLogFileName value="true" /> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%date [%thread] %level %logger - %message%newline" /> 
    </layout> 
</appender> 

<root> 
    <level value="DEBUG" /> 
    <appender-ref ref="RollingLogFileAppender" /> 
</root> 
</log4net> 
</configuration> 
내 AssemblyInfo.cs에
[assembly: log4net.Config.XmlConfigurator(ConfigFile = 
      "Log4Net.config", Watch = true)] 

에서

그리고 로거

.... 
private static readonly ILog logger = LogManager.GetLogger("ExportLogger"); 
.... 
log4net.Config.XmlConfigurator.Configure();//I know this shouldnt be done here, just testing 
logger.Debug("Successfully logged something"); 

위의 코드를 호출하는 모든 실행 오류가 없으므로 실수가 어디인지 확신 할 수 없습니다. 구성 설정이 잘못되었다고 생각됩니다. 누구나 내가 뭘 잘못하고 왜 .txt 파일을 만들 수 있는지 볼 수 있습니까? 당신의 속성에

+0

체크 쓰기 액세스 권한 'C를 : \ MyFolder에' – Sergey

+1

는 그냥 권한하지 않는 가정 - 독립형 log4net을 사용으로 config 파일의 경우 app/web.config 파일에만 적용되므로''및''요소를 제거해야합니다. 또한 그 파일을 전달할 수있는'log4net.Config.XmlConfigurator.Configure()'의 오버로드를 사용하십시오. 'LogManager.GetRepository(). Configured '를 검사하여 구성이로드되었는지 확인할 수 있습니다. 그래도 작동하지 않으면 [디버그 출력에 추적 수신기 추가] (http://haacked.com/archive/2006/09/27/Log4Net_Troubleshooting.aspx/) – stuartd

+0

log4net.dll이 bin 디렉토리에서 사용할 수 있습니까? –

답변

0

오류가 :

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

당신은 구성 파일을 정의하지만 당신은 구성에 대한의 app.config를 사용하고 있습니다.

이 문제가 해결됩니다 : 당신의 폴더에 응용 프로그램 풀 사용자의

[assembly: log4net.Config.XmlConfigurator()]