Dav*_*gan 11 web-config nlog appsettings
有没有一种方法可以从<ApplicationSettings>NLog布局变量中的web.config部分获取值?
我已经在我的web.config中存储了SMTP详细信息,并且不希望复制这些设置只是为了在我的NLog.config中使用.
理想情况下,我想做类似的事情:${aspnet-config:SmtpHostServer}
然后从web.config中获取值
Dav*_*gan 17
除了创建自己的方法之外,我看不到任何明显的方法LayoutRenderer(见下文).如果您要自己组装,请不要忘记将以下内容添加到NLog.Config中:
<extensions>
<add assembly="YOURASSEMBLYNAMEHERE" />
</extensions>
Run Code Online (Sandbox Code Playgroud)
希望这有助于其他人:
[LayoutRenderer("aspnet-config")]
public class AspNetConfigValueLayoutRenderer : LayoutRenderer
{
[DefaultParameter]
public string Variable
{
get;
set;
}
protected override void Append(StringBuilder builder, LogEventInfo logEvent)
{
if (this.Variable == null)
{
return;
}
HttpContext context = HttpContext.Current;
if (context == null)
{
return;
}
builder.Append(Convert.ToString(System.Configuration.ConfigurationManager.AppSettings[this.Variable], CultureInfo.InvariantCulture));
}
}
Run Code Online (Sandbox Code Playgroud)
Jul*_*ian 11
现在,如果没有自定义代码,这是可能的:
使用NLog.Extended并使用
${appsetting:SmtpHostServer}.
请注意:.NET Core/.NET标准尚不支持此功能.
| 归档时间: |
|
| 查看次数: |
7701 次 |
| 最近记录: |