.Net 추가 기능 프레임 워크에서 추가 기능을 사용하는 응용 프로그램을 만들고 있습니다. log4net을 사용하여 추가 기능 내부에서 무슨 일이 일어나는지 추적하고 싶지만 기록 된 데이터를 출력 파일에 쓸 수는 없습니다. Log4net을 호스트와 함께 사용하고 있습니다. 이것은 .config 파일에서 구성을 얻을 수 log4net을 말해야추가 기능에서 log4net을 사용하는 .NET 추가 기능 프레임
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
: 내 추가 기능의의 AssemblyInfo.cs에서
나는 코드 줄을 추가했습니다. 추가 기능에 대한
내의 app.config는 다음과 같습니다 : 예상대로
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.diagnostics>
<trace autoflush="true" indentsize="4">
<listeners>
<add name="myListener" type="System.Diagnostics.TextWriterTraceListener"
initializeData="UpdateModuleLog.log" />
<remove name="Default" />
</listeners>
</trace>
</system.diagnostics>
<log4net>
<appender name="TraceAppender" type="log4net.Appender.TraceAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern
value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
<root>
<level value="INFO"/>
<appender-ref ref="TraceAppender"/>
</root>
</log4net>
</configuration>
추가 기능의의 app.config 파이프 라인으로 이동됩니다. 내 추가 기능에서
, 나는 인스턴스화 다음 코드를 log4net :
private static readonly log4net.ILog log = log4net.LogManager.GetLogger
(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
마지막으로, 나는이 같은 내 코드에서 log4net를 호출
log.InfoFormat("Starting Update Module Version 1.0.0 for Internationalization Database.");
문제는 UpdateModuleLog.log는 점이다 결코 창조되지 않았다. 호스트 응용 프로그램의 bin 폴더 나 파이프 라인의 추가 기능 폴더에 만들어지기를 기대하지만 어느 위치에도 존재하지 않습니다. 나는 TraceAppender를 사용하고 있습니다. 왜냐하면 Debug 나 Trace에 기록 된 내용을 같은 파일에 기록하기를 원하지만 별도의 파일에 기록해야하는 경우 그렇게해야합니다.
또한 호스트 프로세스의 로그 파일은 추가 기능에서 수행 된 로깅을 반영하지 않습니다.