我在Log4Net中看到你可以编写一条消息并将第二个参数作为异常对象传递。
是否可以将另一种类型的对象发送到log4net,以便我可以在我的对象日志中看到这些值?
如果我有一个填充类的实例,我去发送实例以进行记录,
这一切都可能吗?
我很想看到一个教程,但似乎找不到一个
任何帮助真的很感激
答案 0 :(得分:2)
你可以implement a custom formatter。 (首先尝试使用Google搜索,看看是否有人制作了适合您情景的内容)。
答案 1 :(得分:1)
你总是可以自己写出来,这给了一点控制权。您可以使用Reflection来获取对象的类型,获取属性并将它们写为Debug或Info。
您可以进一步扩展使您获得属性的方法,只写出您想要的内容,并递归地向对象n级深度运行,或直到它没有属性。
答案 2 :(得分:0)
ILog
接口的各种方法接受一个对象作为“message”参数,因此log4net“写入”对象的最简单方法是实现ToString()
方法。
另一种方法是提供IObjectRenderer
实施。我不确定如何在配置文件中注册它,但this显示了如何在代码中进行注册。
如果您需要将对象作为appender中的单独实体,那么您应该使用log event context(也适用于ToString()
实现。