gpt4 book ai didi

c# - log4net 复杂类型日志记录

转载 作者:行者123 更新时间:2023-12-04 00:05:09 25 4
gpt4 key购买 nike

我想在 c# 中记录复杂类型的对象并使用 log4net 进行记录。这样做的正确方法是什么?我使用filelogappender。所以我想在日志中查看我的实体。我应该使用stringbuilder类并将我的实体转换为字符串或将其序列化为json,还是log4net有能力做到这一点?

public class Person
{
Name {get;set;}
Surname{get;set;}
}

Person personobject=new Person("MyName","MySurname");
log4net.Log.Warn(personobject);

最佳答案

不能记录复杂类型,原因很简单:

日志记录机制完成了一项艰巨的工作 - 您必须在每次记录信息时打开和关闭流

您流式传输的数据主要是文本,没有简单的方法将复杂对象解析为文本表示,所以您看到的是类型的“浅”文本表示:'Object object'

简单的解决方法是将对象手动序列化为 JSON 字符串,这样:

log4net.Log.Warn(Newtonsoft.Json.JsonConvert.SerializeObject(personobject));

这会将您的类型序列化为字符串,而不是对象,因此您将能够记录您想要的任何复杂类型。

关于c# - log4net 复杂类型日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49174467/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com