全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 处理器/DSP >

Log4Net日志存储

时间:2022-08-11 15:59

人气:

作者:admin

标签: 日志系统  上位机  数据库 

导读:在上位机开发中,日志记录是必不可少的,我们可以通过日志记录做日志分析及错误追踪。初学者会采用txt文本写入来实现日志保存,但是文本写入不是线程安全,当存在多个线程同时...

1、引言

上位机开发中,日志记录是必不可少的,我们可以通过日志记录做日志分析及错误追踪。初学者会采用txt文本写入来实现日志保存,但是文本写入不是线程安全,当存在多个线程同时写入日志时,就会出现一些问题。Log4net库是.Net下一个非常优秀的开源日志记录组件,是一个帮助开发者将日志信息输出到各种目标(控制台、文件、数据库等)的工具。本节主要采用开源组件Log4Net来实现错误ERROR信息文本存储,并结合SQLite数据库,将日志INFO信息存储到数据库中,便于后续的查询。

2、开发准备

首先新建一个Windows窗体应用,取名为thinger.cn.Log4NetSQLitePro,UI界面设计如下所示:

pYYBAGL0ts-AFB-hAAAwo84_ixA535.png

通过Nuget添加Log4Net开源组件,如下所示:

pYYBAGL0ts-ATKxZAAJDyKwTHQA764.png

通过Nuget添加SQLite组件,如下所示:

poYBAGL0ttCAdrIiAAJloM0LCkg434.png

3、文本存储

一般情况下,我们可以将一些错误及异常信息存储在文本中,便于随时打开文件进行查询,文本存储将自动以天为单位,每天对应一个文件,步骤如下:

添加一个应用程序配置文件

项目右击添加新建项,项目类型选择应用程序配置文件,名称为log4net.config,如下所示:

poYBAGL0ttGAPlEGAAKoj07QGO4741.png

配置文件编写

日志配置文件增加相关节点,如下所示:

poYBAGL0ttGARPH2AADaDWPYDko114.png

配置文件规定了日志信息的相关属性、存储方式、日志内容格式等,配置信息如下所示:

poYBAGL0ttGAU0uYAABlPv8AUkQ310.png

其中,较为重要的是日志信息的格式,对应上面文件中的ConversionPattern,值为"[%d]%n%m%n%n",每个占位符有对应的含义,如下所示:

pYYBAGL0ttKAG7TqAAHnr_L4Wu0583.png

配置文件属性中的复制到输出目录,设置为始终复制或如果较新则复制,如下图所示:

poYBAGL0ttKAR5U_AAB8c1DUKDw001.png

项目的AssemblyInfo.cs类中添加一行代码,如下所示:

poYBAGL0ttKAOYtfAAAPwVZXB3s056.png

添加一个LogHelper类,编写2个Error的方法,如下所示:

pYYBAGL0ttKAEnKDAAA-Sbx7MM4563.png

在ini文本存储按钮事件下,调用错误日志写入,如下所示:

poYBAGL0ttKATk4hAAAekEpwa-k369.png

执行完成后,在项目目录,LogError目录下,产生一条当天日志命名的文件,打开如下所示:

poYBAGL0ttOAdWNXAABF8VYgsEY050.png

4、SQLite存储

日志信息存储到数据库的好处在于便于用户通过界面进行查询,这里采用开源免费数据库SQLite,其他关系型数据库,如SQLServer、mysql,原理都是一样的,具体步骤如下所示:

创建数据库及数据表

通过SQLiteStudio软件创建一个数据库,取名为Log4NetSQLite,执行以下脚本创建一个Log数据表:

pYYBAGL0ttOAHKkYAAAVbMvcIPw129.png

将数据库文件复制到项目根目录下的DataBase文件夹中

修改log4net.config文件,增加数据库存储相关配置,如下所示:

poYBAGL0ttOASNViAAEJ0nu_xZg497.png

bufferSize:日志缓存写入条数 设置为0时只要有一条就立刻写到数据库

connectionString:SQLite指向的是数据库文件的绝对路径

LogHelper类中增加一个Info方法,如下所示:

pYYBAGL0ttOABNn-AAAUFmSqAy0519.png

在SQLite存储按钮事件下,调用Info日志写入,如下所示:

poYBAGL0ttOARyntAABh0sY08bc169.png

执行完成后,打开数据库,查看是否有相关记录:

pYYBAGL0ttSAJ-RZAADonkZUWqk506.png

5、实际应用

通过上面一系列的描述,相信大家对Log4Net的应用有了一些了解,Log4Net构建的日志系统是很多项目必备的一个功能,对项目开发、调试及后续维护都有着至关重要的作用。实际使用时,我们还可以将Log4Ne作为一个简单的数据存储工具,甚至可以使用Log4Net做多表多库存储等等,大家在工作中,会经常用到。

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信