带有log4net的WPF-在userappdata中保存日志

本文关键字:保存 日志 userappdata log4net WPF- 带有 | 更新日期: 2023-09-27 18:28:33

我的解决方案中有一个DLL项目,负责记录其他项目中的事件。现在我面临着将日志文件保存在哪里的问题。我想将其保存在用户应用程序数据(c:''users''''AppData''Local''…..)中

如何访问log4net.config文件中的该位置?

我在我的dll项目中有这个:

 static Log()
        {
            log4net.GlobalContext.Properties["LogFileName"] = @"d:'fileRelease2"; //log file path
#if DEBUG
            log4net.GlobalContext.Properties["LogFileName"] = @"d:'fileDebug2"; //log file path
#endif
            FileInfo configFileInfo = new FileInfo("log4net.config");
            log4net.Config.XmlConfigurator.ConfigureAndWatch(configFileInfo);
            log = LogManager.GetLogger(typeof(Log));
        }

提前谢谢。

问候,

======编辑2======

我已经设法把我的log4net.config放成这样:

<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
      <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="DEBUG" />
        <levelMax value="OFF" />
      </filter>
      <param name="AppendToFile" value="true"/>
      <file value="${AppData}'AppName'Logs'log" />
      <staticLogFileName value="false"/>
      <appendToFile value="true" />
      <rollingStyle value="Date" />
      <datePattern value=" yyyy-MM-dd&quot;.txt&quot;"/>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger: %message%newline"/>
      </layout>     
    </appender>

我现在面临的问题是在IDE(VS2013终极版)中创建了文件夹。当我安装应用程序(使用visual studio项目安装程序)时,不会创建文件夹/文件。

如果我以管理员权限启动应用程序,它会创建文件夹/文件。。。

有什么想法吗?

带有log4net的WPF-在userappdata中保存日志

尝试使用

 log4net.GlobalContext.Properties["LogFileName"] = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "fileRelease2");

我认为log4net.Util.PatternString正是您所需要的。Stackoverflow上已经发布了一个很好的答案来解释如何使用它:如何通过编程更改文件位置?。