C#如何在app.config文件中指定appData文件路径

C#如何在app.config文件中指定appData文件路径,c#,app-config,C#,App Config,我正在使用log4net,我将日志文件保存在AppData文件中,用于winxp/Vista等 这是到目前为止我的app.config文件,我已经指定了名称softphone.log。无论如何,我不知道如何指定文件的完整路径,因为每个用户都有不同的路径,这取决于他们的用户名 <log4net> <logger name="default"> <level value="DEBUG"/> </logger> <

我正在使用log4net,我将日志文件保存在AppData文件中,用于winxp/Vista等

这是到目前为止我的app.config文件,我已经指定了名称softphone.log。无论如何,我不知道如何指定文件的完整路径,因为每个用户都有不同的路径,这取决于他们的用户名

<log4net>
    <logger name="default">
      <level value="DEBUG"/>
    </logger>
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="softphone.log"/>
      <appendToFile value="true"/>
      <rollingStyle value="Size"/>
      <maxSizeRollBackup value="10"/>
      <maximumFileSize value="1MB"/>
      <staticLogFileName value="true"/>
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%d [%t] %-5p %c %m%n"/>
      </layout>
    </appender>
  </log4net>
但是,我无法在app.config中使用上述内容,如果我在系统上硬编码路径,则路径将为:

C:\Documents and Settings\John\Application Data
但是,这对于每个客户机都是不同的。那么,对于app.config文件,有没有办法做到这一点呢


非常感谢您的建议,

我不相信您可以随心所欲,有一种方法可以自定义app.config文件的解析区域,这样您就可以添加自己的令牌,可以用正确的值替换,但我不知道在log4net部分中如何工作

但是,在配置中为log4net设置的所有内容也可以在代码中设置。我认为最好的选择是在应用程序启动后在代码中设置appender的属性


啊,更不用说快速的搜索揭示了我的无知。从中可以看出,类似于此:

<file value="${APPDATA}\log-file.txt" />

我会做你想做的。我自己还没有测试过这个问题,所以我也会留下我的第一个答案,但我很想知道您是否有幸使用它。

用户%appdata%。 所以你的代码看起来像-

<file value="%appdata%/softphone.log"/>


很高兴您进行了编辑;)总有办法找到环境变量。我会尝试一下,并报告结果。谢谢。我只是想说这对我来说还可以,我目前只在XP下测试过它,但我想它在Vista上也可以。可能是
<file value="%appdata%/softphone.log"/>