Serilog Azure EventHub Sink输出模板json

时间:2017-04-28 05:27:45

标签: json azure-eventhub serilog

所以,我正在努力争取解决这个问题。 我有Seri​​log并使用EventHub记录错误。 需要一段时间才能找到,但我需要将其序列化为JSON,所以我使用了这个:

logger = new LoggerConfiguration().WriteTo.Sink(new AzureEventHubSink(eventHubClient, new JsonFormatter()))
                .CreateLogger();

大。现在,当我写下例外:

logger.Error(ex, "An Error Occurred");

它写它但是异常写在1个字段(大长强)。

有没有办法告诉SeriLog在自己的字段中编写异常的每个属性(将其视为带有字段的SQL表)?

如何更改outputTemplate但仍然使用JsonFormatter,因为没有重载来接受输出模板?

我正在使用Stream Analytics进行一些查询,并且将每个异常属性作为自己的字段列而不仅仅是包含整个JSON字符串的1个字段使得更好(更好),我需要做交叉加入另一个数据源。

谢谢。

1 个答案:

答案 0 :(得分:0)

似乎唯一的方法是继承JsonFormatter,然后重写WriteException方法并编写有问题的Property ....

    WriteJsonProperty("ClassName", exception.GetType(), ref delim, output);
    WriteJsonProperty("Message", exception.Message, ref delim, output);