我正在使用nlog通过电子邮件跟踪错误-所有配置都存储在.pdf
中。我正在尝试在nlog邮件部分中将web.config
用作密钥appSetting
,但没有考虑到该特定密钥(但对于其他密钥(例如smtpServer,from,to 、.)也可以正常使用。 ..)
已安装以下软件包:
enableSsl
文档:
Mail-target
环境是C#.NET
崩溃的原因是:NLog<br/>
NLog.Extended // required to use appSetting<br/>
Nlog.Targets.Syslog<br/>
Nlog.Web<br/>
可以与enableSsl="${appsetting:Mail.Ssl.Enabled}"
web.config:
enableSsl="False"
nlog-internal.log:
在服装上设置“ $ {appsetting:Mail.Ssl.Enabled}”时出错 'enableSsl'异常:NLog.NLogConfigurationException:错误时 在Mail Target [mail]上设置属性'EnableSsl'---> System.FormatException:$ {appsetting:Mail.Ssl.Enabled}无效 布尔值。 ---> System.FormatException:字符串不是 被识别为有效的布尔值。 在System.Boolean.Parse(字符串值) 在System.ComponentModel.BooleanConverter.ConvertFrom(ITypeDescriptorContext 上下文,CultureInfo文化,对象值) ---内部异常堆栈跟踪的结尾--- 在System.ComponentModel.BooleanConverter.ConvertFrom(ITypeDescriptorContext 上下文,CultureInfo文化,对象值) 在NLog.Internal.PropertyHelper.TryTypeConverterConversion(Type type,String value,Object&newValue) 在NLog.Internal.PropertyHelper.SetPropertyFromString(Object obj,String propertyName,String value,ConfigurationItemFactory configurationItemFactory) ---内部异常堆栈跟踪的结尾--- 在NLog.Internal.PropertyHelper.SetPropertyFromString(Object obj,String propertyName,String value,ConfigurationItemFactory configurationItemFactory) 在NLog.Config.LoggingConfigurationParser.ConfigureObjectFromAttributes(Object targetObject,ILoggingConfigurationElement元素,布尔值 ignoreType)
答案 0 :(得分:1)
enableSsl
不是Layout
类型,而是boolean
类型。 (请参阅docs)。
这意味着它不可布局,因此您不能为此值使用布局渲染器。
您可以(作为例外)配置中的变量,因为在读取配置时会内联这些变量。例如
<variable name="myvar" value="true" />
...
<target name="mail" xsi:type="Mail" enableSsl="${myvar}" ../>
如果需要动态更改配置,则需要一些代码。