0
我正在創建一個使用.Net加載項框架的加載項的應用程序。我想使用log4net跟蹤加載項內容,但是我無法獲取記錄的數據以寫入輸出文件。我在主機上成功使用log4net。.net加載項框架在加載項中使用log4net
在我的加載項的AssemblyInfo.cs中我已經添加了這行代碼:
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
這應該告訴log4net的獲得來自config文件的配置。
我對外接的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,因爲我想將任何寫入調試或跟蹤的任何內容記錄到同一個文件中,但是如果這需要寫入單獨的文件,那就這麼做吧。
此外,主機進程的日誌文件並不反映從加載宏完成的任何日誌記錄。