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>