WPF 桌面应用程序日志文件夹问题中的 Log4net
Log4net in WPF desktop application log folder issues
在系统上安装 WPF 桌面应用程序时,安装文件夹没有创建日志文件的适当权限。我们不想使用事件日志,因为我们需要先注册事件日志事件。这也造成了一些问题。
如何为已安装的桌面应用程序创建文件并保存日志?
在您随应用分发的 log4net 配置文件中指定文件的存储位置。您在 AssemblyAttributes 中指定它,如下所示:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net_myapp.config")]
然后在配置文件本身中列出附加程序。这是一个日志文件的附加程序,它使用 Windows TEMP 文件夹(任何人都可以安全地写入)并在每一行前加上时间戳、线程 ID 和日志级别
<appender name="file" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="%env{TEMP}/MyApp.log" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="5" />
<maximumFileSize value="25MB" />
<staticLogFileName value="true" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date{HH:mm:ss.fff} [%3thread] %5level - %message%newline" />
</layout>
</appender>
在系统上安装 WPF 桌面应用程序时,安装文件夹没有创建日志文件的适当权限。我们不想使用事件日志,因为我们需要先注册事件日志事件。这也造成了一些问题。
如何为已安装的桌面应用程序创建文件并保存日志?
在您随应用分发的 log4net 配置文件中指定文件的存储位置。您在 AssemblyAttributes 中指定它,如下所示:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net_myapp.config")]
然后在配置文件本身中列出附加程序。这是一个日志文件的附加程序,它使用 Windows TEMP 文件夹(任何人都可以安全地写入)并在每一行前加上时间戳、线程 ID 和日志级别
<appender name="file" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="%env{TEMP}/MyApp.log" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="5" />
<maximumFileSize value="25MB" />
<staticLogFileName value="true" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date{HH:mm:ss.fff} [%3thread] %5level - %message%newline" />
</layout>
</appender>