从log4net配置部分访问appSettings配置值

Rob*_*Rob 6 log4net

有谁知道是否可以从同一文件中的log4net config部分的配置文件的appSettings部分访问键/值(不使用代码)?

例如:

<appSettings>
    <add key="Environment" value="DEV" />
    <!-- etc -->
</appSettings>
<log4net>
    <appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
    <file value="${APPDATA}\MyApp\${Environment}\MyApp.log" />
    <!-- etc -->
</log4net>
Run Code Online (Sandbox Code Playgroud)

似乎没有任何文档,所以我不希望...如果所有其他方法都失败,我将在文件值中添加“ DEV”,并将其与appSettings的Environment变量一起替换。

提前致谢,

抢

小智 6

您应该使用log4net.Util.PatternString作为文件类型,并使用%appSetting {SETTING}来引用应用程序设置

参见下面的代码:

<appSettings>
    <add key="Environment" value="DEV" />
    <!-- etc -->
</appSettings>
<log4net>
    <appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
    <file type="log4net.Util.PatternString"
        value="${APPDATA}\MyApp\%appSetting{Environment}\MyApp.log"/>
    <!-- etc -->
</log4net>
Run Code Online (Sandbox Code Playgroud)

希望这对您有所帮助:)


Rob*_*Rob 2

感谢@wageoghe 的帮助。最后,我决定再次将环境值添加到配置文件中(为了简单起见):

<log4net>
    <appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
    <file value="${APPDATA}\MyApp\DEV\MyApp.log" />
    <!-- etc -->
</log4net>
Run Code Online (Sandbox Code Playgroud)