所以,我正在努力争取解决这个问题。 我有Serilog并使用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个字段使得更好(更好),我需要做交叉加入另一个数据源。
谢谢。
答案 0 :(得分:0)
似乎唯一的方法是继承JsonFormatter,然后重写WriteException方法并编写有问题的Property ....
WriteJsonProperty("ClassName", exception.GetType(), ref delim, output);
WriteJsonProperty("Message", exception.Message, ref delim, output);