色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Log4Net日志存儲

微云疏影 ? 來源:dotNet工控上位機 ? 作者:dotNet工控上位機 ? 2022-08-11 15:59 ? 次閱讀

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做多表多庫存儲等等,大家在工作中,會經常用到。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據庫
    +關注

    關注

    7

    文章

    3827

    瀏覽量

    64515
  • 日志系統
    +關注

    關注

    0

    文章

    8

    瀏覽量

    7010
  • 上位機
    +關注

    關注

    27

    文章

    944

    瀏覽量

    54890
收藏 人收藏

    評論

    相關推薦

    Nginx日志分割方案

    nginx 默認沒有提供對日志文件的分割功能,所以隨著時間的增長,access.log 和 error.log 文件會越來越大,尤其是 access.log,其
    發表于 06-19 15:05 ?472次閱讀
    Nginx<b class='flag-5'>日志</b>分割方案

    logcat如何查看Andriod log系統日志

    logcat會輸出系統哪些信息呢?如何學習logcat命令?logcat如何查看Andriod log系統日志?如何查看Andriod log系統日志
    發表于 03-03 06:15

    MySQL中的redo log是什么

    前言 說到MySQL,有兩塊日志一定繞不開,一個是InnoDB存儲引擎的redo log(重做日志),另一個是MySQL Servce層的 binlog(歸檔
    的頭像 發表于 09-14 09:40 ?2037次閱讀

    LogMaster4Net日志服務器軟件

    LogMaster4Net.zip
    發表于 04-27 10:28 ?2次下載
    LogMaster<b class='flag-5'>4Net</b><b class='flag-5'>日志</b>服務器軟件

    詳解MySQL三大日志的作用

    MySQL日志 主要包括錯誤日志、查詢日志、慢查詢日志、事務日志、二進制日志幾大類。其中,比較重
    的頭像 發表于 07-22 14:44 ?1359次閱讀

    log4j日志框架分析

    og4j是Apache下的一款開源的日志框架,能夠滿足我們在項目中對于日志記錄的需求。log4j提供了簡單的API調用,強大的日志格式定義以
    的頭像 發表于 02-28 14:32 ?1134次閱讀
    <b class='flag-5'>log4</b>j<b class='flag-5'>日志</b>框架分析

    針對大量log日志快速定位錯誤地方

    用 grep 拿到的日志很少,我們需要查看附近的日志。我是這樣做的,首先: cat -n test.log | grep “關鍵詞” 得到關鍵日志的行號
    的頭像 發表于 04-21 09:22 ?717次閱讀

    C#上位機開發(十三)之使用Log4net添加日志記錄功能

    一、Log4net 官方網站: 。 下載二進制dll庫:包中提供了針對各個版本的dll庫: 二、使用日志庫 1. 添加庫 復制對應的庫文件到項目中: 2. 配置log4net 2.1. 創建配置文件添加后修改該文件設置:
    發表于 05-29 16:25 ?1次下載
    C#上位機開發(十三)之使用<b class='flag-5'>Log4net</b>添加<b class='flag-5'>日志</b>記錄功能

    Spring Boot的日志框架使用

    目前市面上常見的日志框架有:slf4j(Simple Logging Facade for Java)、logback、log4j、log4j2、commons-logging(Spr
    的頭像 發表于 06-02 10:59 ?963次閱讀
    Spring Boot的<b class='flag-5'>日志</b>框架使用

    服務器log日志大,掌握這些可正確快速定位錯誤!

    針對大量log日志快速定位錯誤地方
    的頭像 發表于 06-05 18:14 ?648次閱讀

    MySQL三種日志講解

    MySQL 日志包含了錯誤日志、查詢日志、慢查詢日志、事務日志、二進制日志等,如果
    的頭像 發表于 07-25 11:15 ?756次閱讀
    MySQL三種<b class='flag-5'>日志</b>講解

    基于Rust的Log日志庫介紹

    了一種簡單的方法來實現日志記錄,本文將介紹如何使用Rust的Log庫作為日志門面,并結合env_logger和log4rs兩個日志庫的實戰用
    的頭像 發表于 09-19 14:49 ?3521次閱讀

    保護Log4j日志中的敏感數據,兩步搞定!

    log4j在準備添加日志消息時調用此方法。在MaskingAppender類中,我們覆蓋這個方法來攔截日志消息,使用maskSensitiveData()方法對敏感數據應用masking,然后將修改后的消息傳遞給超類的appen
    的頭像 發表于 10-18 16:03 ?791次閱讀

    Log4cpp優勢及優點

    1、log4cpp概述 Log4cpp是一個開源的C++類庫,它提供了C++程序中使用日志和跟蹤調試的功能,它的優點如下: 提供應用程序運行上下文,方便跟蹤調試; 可擴展的、多種方式記錄日志
    的頭像 發表于 11-09 14:27 ?714次閱讀
    <b class='flag-5'>Log4</b>cpp優勢及優點

    nginx日志配置方法

    access_log用來定義日志級別,日志位置。
    的頭像 發表于 10-24 17:43 ?248次閱讀
    主站蜘蛛池模板: 日韩一区二区三区免费体验| 国产偷抇久久精品A片蜜臀A | 亚洲欧洲一级| 国内精品视频一区二区在线观看| 亚洲欧美一区二区三区九九九| 久久毛片网站| 忘忧草在线影院www日本| gv肉片视频免费观看| 日韩中文无线码在线视频| 国产欧美一区二区精品仙草咪| 热中文热国产热综合| 国产精品99久久久久久AV| 一级做a爰片久久免费| 狠狠色狠狠色综合日日2019| 竹菊影视一区二区三区| 精品福利一区| 亚洲综合小说久久另类区| 免费看毛片的网址| 67194免费入口| 麻豆AV久久无码精品九九| xxx动漫xxx在线观看| 香蕉动漫库| 男女无遮挡吃奶gift动态图 | 国产自产第一区c国产| 91久久线看在观草草青青| 美女洗澡脱得一二干净| 国产成人国产在线观看入口| 外国xxxx| 巨胸美乳中文在线观看| 俄罗斯6一12呦女精品| 肉动漫无码无删减在线观看| 成年人深夜福利| 精品夜夜澡人妻无码AV蜜桃| 亚洲三级精品| 日韩AV爽爽爽久久久久久| 黄页网站18以下勿看免费| 成年人免费在线视频观看| 综合久久久久久久综合网| 亚洲成年男人的天堂网 | 噜噜噜狠狠夜夜躁精品| 国产精品无码麻豆放荡AV|