Log4Net:将 C# 对象(异常除外)写入日志?

问题描述 投票:0回答:3

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

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

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

这可能吗?

c# logging log4net error-logging
3个回答
2
投票

您可以实现自定义格式化程序。 (首先尝试谷歌搜索,看看是否有人制作了适合您场景的东西)。


1
投票

你总是可以自己写出来,这样可以提供一些控制。您可以使用 Reflection 来获取对象的类型,获取属性并将其写为 Debug 或 Info。

您可以进一步扩展获取属性的方法,以仅写出您想要的内容,并递归运行到对象深处 n 层或直到它没有属性。


0
投票

ILog
接口的各种方法都接受一个对象作为“消息”参数,因此获取由log4net“写入”的对象的最简单方法是实现一个
ToString()
方法。

另一种方法是提供

IObjectRenderer
实现。我不确定如何在配置文件中注册它,但是 this 显示了如何在代码中进行操作。

如果您需要该对象作为附加程序中的单独实体,那么您应该使用 log event context (也适用于

ToString()
实现。

© www.soinside.com 2019 - 2024. All rights reserved.