C# Log4Net学习笔记:记录日志到数据库(c罗)

网友投稿 264 2022-08-05

C# Log4Net学习笔记:记录日志到数据库(c罗)

一、数据准备

在SQL Server中创建记录日志的数据表LogDetail:

在此表中,日志时间、日志级别、线程ID、日志名称都是可以通过配置文件从Log4Net库中取值的,需要重点处理的是日志内容字段。

二、记录日志到数据库

2.1、配置文件

添加一个ConfigFile文件夹,然后在其下面新建一个Log4NetToDB.config的配置文件,接着在其属性的复制到输出目录项下选择始终复制。

2.2、日志内容处理过程

注:日志内容处理涉及的4个类(含帮助类)都是存放在Utility文件夹下。

从配置的可以看出,日志内容的取值来源于一个自定义的Layout类CustomLayout:

CustomLayout类添加属性时,类型来源于CustomLayoutConverter类:

从配置的可以看出,日志内容的取值来源于属性LogMessage,而这个LogMessage,统一来源于一个实体类LogContent:

2.3、帮助类

为了简化写日志的过程,封装了一个简单的帮助类LogHelper:

2.4、测试代码

2.5、运行结果

2.6、一点优化

每次写日志时,都需要进行Log4Net文件配置的话,肯定是没有必要的:

XmlConfigurator.Configure(new FileInfo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory + "ConfigFile\\Log4NetToDB.config")));

可以在项目的Properties\AssemblyInfo.cs最下面加上下面这一句,进行全局的统一配置:

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "ConfigFile\\Log4NetToDB.config")]

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:C# 数据操作系列 - 3. ADO.NET 离线查询(cctv5)
下一篇:C# 9.0 新特性预览 - 空参数校验(c1驾照能开什么车)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~