为什么log4net在IDE中工作而在服务器上不工作?

时间:2015-04-02 14:51:37

标签: log4net

我在Dynamics CRM 2011内部C#.Net环境中工作。这是我第一次使用log4net所以请耐心等待,请...

我的log4net的app.config条目是:

<log4net>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
  <file value="EDI File Generator Log.txt" />
  <appendToFile value="true" />
  <rollingStyle value="Size" />
  <maxSizeRollBackups value="10" />
  <maximumFileSize value="20MB" />
  <staticLogFileName value="true" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date [%thread] %level %logger - %message%newline" />
  </layout>
</appender>
<root>
  <level value="INFO"/>
  <appender-ref ref="RollingFileAppender"/>
  <!--<appender-ref ref="ConsoleAppender" />-->
</root>

在我编写的程序中:

private static readonly ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

在整个程序中,有几个地方我称之为执行的方法:

log.Info(sMessage);

当我从VS 2010执行代码时,程序运行并将消息记录到日志文件中。当我将程序部署到我自己的机器上时,程序运行但没有写入日志条目。

1 个答案:

答案 0 :(得分:0)

我明白了......

添加

<appSettings>
   <add key="log4net.Internal.Debug" value="true"/>
</appSettings>

到我的配置文件我能看到log4net内部消息。这告诉我log4net无法找到我的app.config文件。配置文件的部署名称是MyProgram.exe.config。所以我将Assembly声明从代码类移到了AssemblyInfo.cs并删除了指向app.config的指针,留下了

[assembly: log4net.Config.XmlConfigurator]

这既可以在IDE中使用,也可以在我的计算机上部署。