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