【问题标题】:WPF with log4net - save log in userappdata带有 log4net 的 WPF - 在 userappdata 中保存日志
【发布时间】:2014-10-30 17:55:26
【问题描述】:

我的解决方案中有一个 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 项目安装程序)时,不会创建文件夹/文件。

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

有什么想法吗?

【问题讨论】:

  • 听起来您可能需要在安装程序中进行自定义操作来创建要保存日志文件的文件夹?我之前没有使用 VS 创建安装程序,所以恐怕无法帮助您。

标签: c# wpf log4net log4net-configuration


【解决方案1】:

尝试使用

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

【讨论】:

    【解决方案2】:

    我认为log4net.Util.PatternString 是您所需要的。 Stackoverflow 上已经发布了一个很好的答案来解释如何使用它:How can I change the file location programmatically?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多