有谁知道是否可以从同一文件中的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)
希望这对您有所帮助:)
感谢@wageoghe 的帮助。最后,我决定再次将环境值添加到配置文件中(为了简单起见):
<log4net>
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
<file value="${APPDATA}\MyApp\DEV\MyApp.log" />
<!-- etc -->
</log4net>
Run Code Online (Sandbox Code Playgroud)