Log4Net:将C#对象(除了Exception)写入日志?

时间:2011-05-25 10:23:17

标签: c# logging log4net error-logging

我在Log4Net中看到你可以编写一条消息并将第二个参数作为异常对象传递。

是否可以将另一种类型的对象发送到log4net,以便我可以在我的对象日志中看到这些值?

如果我有一个填充类的实例,我去发送实例以进行记录,

这一切都可能吗?

我很想看到一个教程,但似乎找不到一个

任何帮助真的很感激

3 个答案:

答案 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()实现。