如何在Asp.net核心日志记录和应用程序见解中记录JSON

时间:2019-05-08 15:55:49

标签: asp.net-core asp.net-core-logging

有什么方法可以在asp.net core 2中记录如下内容?

_logger.LogInformation("Someone did something! \r\n{detail}", new {
    SomeObject = someVariable,
    SomeOtherObject = someOtherVariable
});

我已经尝试过使用序列化的值,但是生成的json似乎被截断了。

1 个答案:

答案 0 :(得分:2)

您尝试使用的参数用于args,通常用于消息的字符串内插。某些日志记录提供程序(例如Serilog)会将这些args持久化为JSON,但随后您将依赖于特定的提供程序及其选择处理方式。

如果您的目标是简单地将{detail}替换为JSON对象,则只需在消息中直接执行此操作即可:

var detail = JsonConvert.SerializeObject(new
{
    SomeObject = someVariable,
    SomeOtherObject = someOtherVariable
});
_logger.LogInformation($"Someone did something! \r\n{detail}");