首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用log4net插件的.Net插件框架

使用log4net插件的.Net插件框架
EN

Stack Overflow用户
提问于 2012-02-01 23:00:30
回答 1查看 331关注 0票数 0

我正在创建一个使用具有.Net外接程序框架的外接程序的应用程序。我想使用log4net跟踪外接程序内部发生的事情,但我无法将记录的数据写入输出文件。我在主机上成功地使用了log4net。

在我的插件的assemblyinfo.cs中,我添加了下面这行代码:

代码语言:javascript
复制
[assembly: log4net.Config.XmlConfigurator(Watch = true)]

这应该会告诉log4net从.config文件中获取配置。

我的外接程序app.config如下所示:

代码语言:javascript
复制
<?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:

代码语言:javascript
复制
    private static readonly log4net.ILog log = log4net.LogManager.GetLogger
        (System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

最后,我在代码中调用log4net,如下所示:

代码语言:javascript
复制
        log.InfoFormat("Starting Update Module Version 1.0.0 for Internationalization Database.");

问题是UpdateModuleLog.log从未被创建过。我希望它是在宿主应用程序的bin文件夹或管道中的add-ins文件夹中创建的,但这两个位置都不存在。我之所以使用TraceAppender,是因为我想将任何写入调试或跟踪的内容记录到同一个文件中,但如果这需要写入到单独的文件中,那么就这样做吧。

此外,主机进程的日志文件不反映从外接程序完成的任何日志记录。

EN

回答 1

Stack Overflow用户

发布于 2012-02-01 23:46:14

找到答案了。我的app.config缺少这段代码:

代码语言:javascript
复制
  <configSections>
    <section name="log4net"
      type="log4net.Config.Log4NetConfigurationSectionHandler, 
            log4net"/>
  </configSections>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9098047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档