为什么不通过电子邮件目标呈现nLog自定义事件属性?

时间:2015-12-07 15:12:31

标签: nlog

我有一个外观我正在用来结束我的nLog调用。我正在使用nLog的事件属性来添加自定义的“longMessage”字段。这是代码:

public void Fatal(string shortMessage, string longMessage, Exception exception = null)
{
    Logger _logger = LogManager.GetCurrentClassLogger();
    LogEventInfo theEvent = new LogEventInfo(LogLevel.Debug, "", "Pass my custom value");
    theEvent.Message = shortMessage;
    theEvent.Properties["LongMessage"] = longMessage;
    theEvent.Exception = exception;
    _logger.Fatal(theEvent);
}

当我将nLog事件写入文件或数据库目标时,LongMessage字段正确呈现。但是当我写电子邮件时,我得到一个空字符串,我的长信息应该是。输出属性的任何想法都可以在数据库目标中起作用但不能在电子邮件目标中工作吗?

<target name="themail" xsi:type="Mail"
    smtpServer="VALID.INTERNAL.IP"
    from="sender@address.com"
    to="recip@address.com"
    subject="${event-properties:item=LongMessage}"
    body="${all-event-properties:format=[key]=[value]:separator=,:includeCallerInformation=true}"
    html="true"
    encoding="UTF-8">

我收到的电子邮件很好。它很棒。但是主体和身体只是空白。我已经在主题和正文中添加了其他内容,以确保我在电子邮件的主题和正文中获得了某些内容,这也有效。除了事件属性查找之外,一切都有效 - 并且只对电子邮件目标无效。

1 个答案:

答案 0 :(得分:1)

我认为你需要摆脱格式的等号 - 这就是我最终想到的:

${all-event-properties:format=[key]\=[value]:separator=,:includeCallerInformation=true}"