C#-log4net自定义日志对象和附加程序
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#-log4net自定义日志对象和附加程序,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1099字,纯文字阅读大概需要2分钟。
内容图文
![C#-log4net自定义日志对象和附加程序](/upload/InfoBanner/zyjiaocheng/671/ddde6bee23df44faad9131e7b389a52e.jpg)
我想扩展log4net以接受自定义日志对象作为参数.例如:
public class MyLogObject
{
public string PropA;
public int PropB;
}
private MyLogObject entry = new MyLogObject() {PropA = "FooBar", PropB = 1};
Log.Debug(entry);
…这应该类似于例外.
在第二步中,应使用自定义数据库附加程序将自定义日志对象写入数据库.定制数据库追加器将类似于ADONetAppender,但进行了一些修改,例如内部缓冲的日志条目队列.
有谁知道它是否适用于log4net,是否有任何示例可以帮助我做到这一点?
我的日志对象和数据库字段的属性是固定的,因此无需对其进行配置.
更新资料
我的想法是将log4net配置为与自定义渲染器“ MyRenderer”一起使用我的自定义“ MyAppender”.渲染器将??返回一个简单的SQL插入语句,并由附加器将其写入数据库.
也许有更好的方法可以做到这一点.
解决方法:
您可以将自定义对象存储在ThreadContext(或全局上下文,如果有意义的话)中
log4net.ThreadContext.Properties[“MyLogObject”] = entry;
该属性可以轻松地在您的附加程序中提取.如果提供“ ToString()”替代,则甚至可以使用普通的附加程序并指定转换模式来打印它:
date %-5level %property{MyLogObject} – %message%newline
为log4net创建接口和包装是一个好主意.然后,添加将对象作为参数接受的方法,以便隐藏有关设置上下文的详细信息.
内容总结
以上是互联网集市为您收集整理的C#-log4net自定义日志对象和附加程序全部内容,希望文章能够帮你解决C#-log4net自定义日志对象和附加程序所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。