對於用C#4編寫的Windows服務,我配置了log4net並且在開發中正常工作。但不在生產中。log4net日誌文件在生產中爲空,不在開發中
這裏是我的配置:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
<file value="Logs/Log.xml"/>
<appendToFile value="true"/>
<rollingStyle value="Size"/>
<maxSizeRollBackups value="10"/>
<maximumFileSize value="100MB"/>
<layout type="log4net.Layout.XmlLayout">
<param name="Prefix" value=""/>
</layout>
</appender>
<root>
<level value="ALL"/>
<appender-ref ref="FileAppender"/>
</root>
</log4net>
</configuration>
在我的AssemblyInfo.cs
我:
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
當我在本地運行的應用程序,如預期的東西被寫入日誌。當我在服務器上運行它時,日誌文件被創建在正確的路徑但它仍然是空的。沒有一個字符被寫入日誌。
顯然,我的配置正在被拾取,因爲該文件位於正確的位置並具有適當的擴展名。
我會建議他們啓用內部調試,這意味着如果log4net的失敗,你應該明白爲什麼 - 詳見http://logging.apache.org/log4net/release/faq.html #internalDebug – sgmoore
您是否找到解決方案? A有同樣的問題 –
排序,我從程序集中刪除了'[assembly:log4net.Config.XmlConfigurator(Watch = true)]'行,並在應用程序啓動時在代碼中完成。 –