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

发布于 2024-11-09 21:48:34 字数 148 浏览 5 评论 0 原文

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

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

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

这可能吗?

I have seen in Log4Net you can write a message and pass as the second parameter the Exception Object.

Is it possible to send another type of object to log4net so I can see the values in my log of my object?

If i have an instance of a class that is populate and I went to send the instance along to be logged,

Is this at all possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

我做我的改变 2024-11-16 21:48:34

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

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

You could always write it out yourself, which gives a bit of control. You can use Reflection to get the type of the object, get the properties and write them out as Debug or Info.

You could further extend the method that gets you the properties to only write out what you want and run recursively n-levels deep into the object or until it has no properties.

一笔一画续写前缘 2024-11-16 21:48:34

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

另一种方法是提供 IObjectRenderer 实现。我不确定如何在配置文件中注册它,但展示了如何在代码中进行操作。

如果您需要该对象作为附加程序中的单独实体,那么您应该使用 记录事件上下文(也适用于 ToString() 实现。

The various methods of the ILog interface accept an object as "message" parameter, therefore the easiest way to get an object "written" by log4net is to implement a ToString() method.

Another way would be to provide an IObjectRenderer implementation. I am not sure how to register this in a configuration file, but this shows how to do in code.

If you need the object as separate entity in an appender then you should use log event context (also works well with a ToString() implementation.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文