我在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执行代码时,程序运行并将消息记录到日志文件中。当我将程序部署到我自己的机器上时,程序运行但没有写入日志条目。
答案 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中使用,也可以在我的计算机上部署。