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

标签 log4net

有谁知道是否可以从同一文件中的 log4net 配置部分的配置文件的 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>

似乎没有关于此的任何文档,所以我不抱希望......如果所有其他方法都失败了,我只会将“DEV”添加到文件值中,并将其与 appSettings 的环境变量一起替换。

提前致谢,

最佳答案

您应该使用 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>

希望这仍然有帮助:)

关于log4net - 从 log4net 配置部分访问 appSettings 配置值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15642570/

相关文章:

.net - Azure 诊断 1.3 - 如何在不支持 System.Diagnostics.Trace 的情况下进行日志记录

c# - log4net:运行时不同文件附加程序上的不同日志

c# - MemoryAppender PatternLayout 不渲染?

c# - Log4Net 未在 MaxFileSize 上滚动

c# - 如何自动记录 .NET Core WebAPI 中的每个请求?

asp.net - log4net 在 ASP.Net MVC Web 应用程序中抛出安全异常

c# - 带有 log4net 的 Raygun 不记录

.net - 如何在配置文件中初始化 log4net GlobalContext 属性

logging - 日志信息最佳实践

ASP.NET 日志记录 - log4net 或运行状况监控?