Для службы Windows, написанной на C # 4, у меня настроена 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)]
Когда я запускаю приложение локально, материал записывается в журнал, как и ожидалось. Когда я запускаю его на сервере, файл журнала создается по правильному пути , но он остается пустым. Ни один символ не записывается в журнал.
Очевидно, что моя конфигурация подбирается, поскольку файл находится в правильном месте с соответствующим расширением.