Я использую log4net в приложении WPF. log4net работает при запуске приложения из Visual Studio, однако он не работает, когда мы запускаем приложение через исполняемый файл от bin
.log4net не работает при выполнении исполняемого файла WPF
Мы используем log4net.config
файл, вот как это выглядит:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<log4net debug="true">
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="C:/ProgramData/CompApps/Logs/AppName/log.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="25" />
<maximumFileSize value="20MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%utcdate UTC %property{log4net:HostName} [%thread] %-5level %logger - %method() - %message%newline" />
</layout>
</appender>
<root>
<level value="Info" />
<appender-ref ref="RollingFileAppender" />
</root>
</log4net>
</configuration>
log4net.config
свойства
Build Action: Content
Copy to Output Directory: Copy always
AssemblyInfo.cs
:
// log4net config
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
И это используется в каждом классе мы хотим использовать регистратор:
private static readonly ILog log = LogManager.GetLogger(typeof(App));
Имеет ли пользователь ** ** при запуске приложения права записи на 'C:/ProgramData/CompApps/Logs/AppName /'? – ChrisF
Да, пользователь, выполняющий приложение, имеет права на запись в 'C:/ProgramData/CompApps/Logs/AppName /' – Cole
Делает ли 'debug =" true "' какой-либо смысл не регистрироваться при выполнении из .exe? –