使用Log4Net将系统日志信息记录到记事本和数据库中

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

发布一个k8s部署视频:https://edu.youkuaiyun.com/course/detail/26967

课程内容:各种k8s部署方式。包括minikube部署,kubeadm部署,kubeasz部署,rancher部署,k3s部署。包括开发测试环境部署k8s,和生产环境部署k8s。

腾讯课堂连接地址https://ke.qq.com/course/478827?taid=4373109931462251&tuin=ba64518

第二个视频发布  https://edu.youkuaiyun.com/course/detail/27109

腾讯课堂连接地址https://ke.qq.com/course/484107?tuin=ba64518

介绍主要的k8s资源的使用配置和命令。包括configmap,pod,service,replicaset,namespace,deployment,daemonset,ingress,pv,pvc,sc,role,rolebinding,clusterrole,clusterrolebinding,secret,serviceaccount,statefulset,job,cronjob,podDisruptionbudget,podSecurityPolicy,networkPolicy,resourceQuota,limitrange,endpoint,event,conponentstatus,node,apiservice,controllerRevision等。

第三个视频发布:https://edu.youkuaiyun.com/course/detail/27574

详细介绍helm命令,学习helm chart语法,编写helm chart。深入分析各项目源码,学习编写helm插件
————————————————------------------------------------------------------------------------------------------------------------------

一、使用Log4Net将日志记录到记事本中步骤

        1,将log4net.dll文件添加到项目引用中

        2,写日志记录器类如下:

  /// <summary>
    /// 日志记录器
    /// </summary>
    public class LogWriter
    {
        /// <summary>
        /// 记录调试信息
        /// </summary>
        /// <param name="message"></param>
        public static void Debug(string message)
        {
            log4net.ILog log = log4net.LogManager.GetLogger("Logger");
            if (log.IsDebugEnabled)
            {
                log.Debug(message);
            }
            log = null;
        }

        /// <summary>
        /// 记录错误信息
        /// </summary>
        /// <param name="message"></param>
        public static void Error(string message)
        {
            log4net.ILog log = log4net.LogManager.GetLogger("Logger");
            if (log.IsErrorEnabled)
            {
                log.Error(message);
            }
            log = null;
        }

        /// <summary>
        /// 记录致命错误
        /// </summary>
        /// <param name="message"></param>
        public static void Fatal(string message)
        {

            log4net.ILog log = log4net.LogManager.GetLogger("Logger");
            if (log.IsFatalEnabled)
            {
                log.Fatal(message);
            }
            log = null;
        }

        /// <summary>
        /// 记录一般信息
        /// </summary>
        /// <param name="message"></param>
        public static void Info(string message)
        {
            log4net.ILog log = log4net.LogManager.GetLogger("Logger");
            if (log.IsInfoEnabled)
            {
                log.Info(message);
            }
            log = null;
        }

        /// <summary>
        /// 记录警告信息
        /// </summary>
        /// <param name="message"></param>
        public static void Warn(string message)
        {
            log4net.ILog log = log4net.LogManager.GetLogger("Logger");
            if (log.IsWarnEnabled)
            {
                log.Warn(message);
            }
            log = null;
        } 

    }

         3,在web程序的根目录中添加log4net.config文件内容如下所示

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
  </configSections>
  <log4net>
    <!--<root>
       
   <level value="WARN" /> 
   <appender-ref ref="rollingFile" /> 
   
    </root>-->
    <logger name="Logger">
      <level value="ALL" />
      <appender-ref ref="rollingFile" />
    </logger>
    <appender name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net" >
      <param name="File" type="" value="log/" />
      <param name="AppendToFile" value="true" />
      <param name="RollingStyle" value="Date" />
      <datePattern value="yyyyMMdd'.txt'" />
      <param name="StaticLogFileName" value="false" />
      <layout type="log4net.Layout.PatternLayout,log4net">
        <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
      </layout>
    </appender>
  </log4net>
</configuration>

  4,使用时进行如下调用就可以生成在应用程序的根目录下生成一个log文件夹,并且在文件夹中会生成以时间为名称的日志文件     

 

 

            LogWriter.Info("请选择认证方式Info");
            LogWriter.Warn("请选择认证方式Warn");
            LogWriter.Fatal("请选择认证方式Fatal");
            LogWriter.Error("请选择认证方式Error");
            LogWriter.Debug("请选择认证方式Debug");

 

 

 

二,将使用Log4Net将日志文件保存到数据库中

       参考链接点击打开链接(注意:这里配置的是sql server数据库)

       如要保存到Oracle或其他数据库,请链接点击打开链接,在这里你可以查询到使用Log4Net将日志信息保存到不同数据库的配置文件信息。

      其中我在做将日志信息保存到Oracle数据库时,遇到些问题,我们系统使用的是Oracle.DataAccess.dll,但是很多示例中给出的是System.Data.OracleClient.dll,所有导致在配置

 
<connectionType value="System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 应该更改为 
<connectionType value="Oracle.DataAccess.Client.OracleConnection, Oracle.DataAccess.Client, Version=4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
在这里一定要注意Version和PublicKeyToken的准确性,否则是无法插入数据库中的。
 

 

       

ASP.NET MVC 使用Log4Net在不同目录中记录不同类型的日志 在上一篇文章中,实现了利用Log4Net记录系统中出现的问题。如果同时还需要记录用户操作的监控日志,就需要一些修改 修改Web.Cofig配置文件 ,增加一个logger节点和appender节点,用于监控操作日志配置,并且设置不同的日志文件路径,如下图所示: <log4net> <!-- OFF, FATAL, ERROR, WARN, INFO, DEB... 阅读详情

相关推荐

Log4net系统日志管理实践:多种数据库集成与应用

Log4net 是一个开源的日志记录框架,用于在.NET环境中记录日志。它广泛应用于开发者社区,提供了简单而强大的方式来记录应用程序的运行状态。Log4net 以配置文件为基础,支持多种日志级别,能够将日志信息输出到不同的目标,如控制台、文件、数据库等。了解其基本原理和结构对于提高应用程序的调试效率和维护性至关重要。日志级别是衡量事件严重性的一种方式,它帮助开发者快速区分日志中的信息类型。常见的日志级别从低到高依次为:DEBUG、INFO、WARN、ERROR和FATAL。

weixin_31659095的博客 1163

swagger常用配置+log4net实现txt文本日志记录

以上步骤就可以实现swagger常用配置+log4net实现txt文本日志记录。2.新建XML配置文件为 log4net.Config。3.增加Program.cs的配置项。修改Program.cs的配置。1.创建新文件夹CfgFile。

qq_50449072的博客 368

C#项目中集成log4net日志记录实战

在软件开发和维护过程中,日志记录是一项基础但至关重要的工作。它能够帮助开发者了解软件在运行时的状态,便于监控、调试和性能分析。通过日志,团队可以追踪错误、分析异常行为、优化代码,并确保系统的可靠性。日志记录的优势在于提供了一种机制,让开发者能够在事后分析问题发生的原因,同时,对于生产环境中的实时监控与问题快速响应也是不可或缺的一部分。log4net是一个强大的.NET日志记录库,它源自Apache的log4j项目,并专门针对.NET平台进行了优化。

weixin_33239721的博客 959

使用 log4net 将异常日志保存到数据库的完整教程

在软件开发中,记录日志是非常重要的,尤其是在应用程序发生异常时,能够快速追踪问题的根源至关重要。log4net 是一个流行的日志框架,它允许将日志信息记录到多个目标(如文件、数据库、控制台等)。本教程将介绍如何通过 log4net 将异常日志保存到数据库中,并包含详细的代码和注释。

hy_4377的博客 1526

C# 利用log4net 把日志写入到数据库

C# 利用log4net 把日志写入到数据库

Log4net日志功能-记录数据库异常和系统异常

利用log4net记录日志,将数据库异常和系统异常存储到记事本中。

C# Log4Net记录到数据库

目录标题一、数据准备二、记录日志到数据库2.1、配置文件2.2、日志内容处理过程2.3、帮助类2.4、测试代码2.5、运行结果2.6、一点优化 一、数据准备 在SQL Server中创建记录日志的数据表LogDetail: CREATE TABLE [dbo].[LogDetail]( [LogID] [INT] IDENTITY(1,1) NOT NULL, --自增ID [LogDate] [DATETIME] NULL, --日志时间 [LogLevel

Wu7z_的博客 1207

.Net 使用Log4Net 获取系统日志并写入数据库

异常对于程序来说是非常重要的,方便我们程序员发现异常、并能够快速的找到异常;本文介绍使用Log4net实现获取程序的错误信息,并将错误信息写入Sql Server数据库。

log4net日志写入数据库

添加log4net.dll 添加配置(以控制台为例) log4net.config(添加) <?xml version="1.0" encoding="utf-8" ?> <log4net debug="false"> <!-- name属性指定其名称,type则是log4net.Appender命名空间的一个类的名称,意思是,指定使用哪种介质--&g...

CWK445056007的专栏 1247

STM32U575 ADC+DMA+UART数据采集实战:CubeMX配置避坑与代码实现

在嵌入式开发中,ADC采集与DMA传输是提升系统实时性的关键技术。通过DMA将ADC数据直接搬运到内存,可大幅降低CPU占用,实现高效连续采样。结合UART的DMA发送,能进一步解放CPU,适用于工业采集、信号监测等场景。本文以STM32U575为例,详解CubeMX中ADC、DMA、UART的配置要点,包括时钟树、DMAMUX映射、循环模式等,并给出代码实现与常见问题排查,帮助开发者快速构建稳定的数据采集链路。

weixin_29194255的博客 171

蜻蜓fm爬虫python

本文介绍了一个用于下载蜻蜓FM音频书籍的Python脚本实现。该脚本主要功能包括:1)通过账号密码登录获取认证信息;2)从目标书籍主页提取版本信息;3)获取书籍节目总数和分页信息;4)生成节目下载链接(使用HMAC-MD5加密算法生成请求签名);5)下载音频文件并保存。脚本采用多种反爬措施:设置User-Agent模拟浏览器行为、使用动态时间戳、HMAC-MD5签名验证等,有效规避简单的反爬机制。整个流程包括登录认证、获取书籍信息、生成下载链接和保存音频文件四个步骤,实现自动化批量下载功能。

野猫炫的博客 913

使用log4net 来记录系统日志

Log4net 记录日志并写入到数据库 具体步骤如下: 1.下载log4net的Dll文件并引入到项目中,在主项目添加对log4net.dll的引用 2.在相应的Globall.cs文件中的Application_Start 事件中写入 protected void Application_Start(Object sender, EventArgs e) {

SpringFileld的专栏 1149

STM32F103C8T6 Bootloader开发实战:串口IAP固件升级与Keil工程配置详解

本文详细介绍了STM32F103C8T6 Bootloader开发实战,重点讲解串口IAP固件升级的实现方法与Keil uVision5工程配置。通过Flash分区管理、USART1通信协议设计及应用程序跳转机制等核心技术,帮助开发者掌握嵌入式系统固件升级方案,提升设备维护效率。

weixin_29165725的博客 437

系统日志控件 Log4NET

//日志系统: //什么是日志: 每天发生的事件(操作记录) //Log4NET是一个从Java版的Log4J 移植过来的日志框架,可以简化日志记录 //log4NET的概念: // a, 级别:trace(跟踪) debug(调试) info(普通) warm(警告) Error(错误) ...

weixin_30611509的博客 182

生成对抗网络(GAN、DCGAN、ACGAN)-----学习笔记

生成对抗网络学习笔记 生成对抗网络有两个关键结构:生成模型、判别模型。 生成模型:输入是一个服从正态分布的N维向量,利用这个N维向量生成一张图片。 判别模型:对于生成模型输出的图像判别它是不是真的图像。 生成模型和判别模型的博弈关系在于:生成模型的目的是生成让判别模型无法判别真伪的图像,而判别模型的目的是判断输入图像的真伪。 结合代码来看生成对抗网络中,生成器和判别器的训练过程: 判别模型的训...

weixin_43227526的博客 5491

【一步到位】Android Studio 实现安卓连接阿里云物联网云平台

最新版本目前是Android Studio Iguana | 2024.1.2,你可以到官网上去找之前的版本,手上有工作项目的不要去轻易尝试,说不定你就编译失败了,失败了也不要担心,解决就可以了。

m0_73799445的博客 1万+

利用Log4net记录系统日志信息(支持6种数据库)

Log4net的优点: 几乎所有的大型应用都会有自己的用于跟踪调试的API。因为一旦程序被部署以后,就不太可能再利用专门的调试工具了。然而一个管理员可能需要有一套强大的日志系统来诊断和修复配置上的问题。 经验表明,日志记录往往是软件开发周期中的重要组成部分。它具有以下几个优点:它可以提供应用程序运行时的精确环境,可供开发人员尽快找到应用程序中的Bug;一旦在程序中加入了Log输出代码,程序运行

dmz1981的专栏 5285

Qt基础之十九:进程与QProcess

进程就是一个程序的执行实例,也就是正在运行的程序。对操作系统来说,进程就是一个担当分配系统资源CPU时间、内存的实体。在Qt 中,我们使用QProcess来表示一个进程。这个类可以允许我们的应用程序启动一个新的外部程序,并且与这个程序进行通讯。当外部程序开始启动时,QProcess的状态为Starting;外部程序已经启动时,QProcess的状态为Running,并发送started()信号;当外部层序退出了,QProcess的状态为NotRunning(初始状态),并发送finished()信号。

草上爬的博客 1万+

log4net的使用方法

不知道你的问题解决没有,我看到啦,就说说我的看法吧.log4net可以将系统信息:出错,调试,致命信息记录下来,我用过的有两种方法,一:记录在文本txt中,二:写进window系统日志中. 配置web.config <!-- None Fatal ERROR WARN D

johnny的专栏 801

FPGA 学习笔记:Vitis IDE launch failed 的解决方法

FPGA 学习笔记:Vitis IDE launch failed 的解决方法

坚韧与专注 1万+

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

使用log4net组件记录系统日志

log4net是为.net下记录系统日志开发的框架组件,功能强大,使用也比较方便。 使用方法: 1. 在自己的项目中添加对log4net.dll的引用。 2. 设置配置文件App.config(也可以为log4net设置单独的配置文件,参考CarHui的在.Net程序中使用log4net记录日志(示例) ) 示例: <?xmlversion="1.0"encoding="utf-...

weixin_30344995的博客 85

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

log4net 记录 总结

说实话,我并不是太想写这篇文章,因为我承诺过要完成博客园的部分功能,所以一直都在积极的利用下班时间来完善这个系统, 但是我又不想让看我源代码的朋友不知道我写的代码是什么意思,所以我还是单独写一个文章,叙述一下我对管理日志的看法, 当然主要是log4net的使用。为了写这篇文章,我查看了博客园的很多关于log4net的文章,但是结果令我很不满意,因为他们对于log4net的介绍基本上都是大同小异, 我不敢说他们写的有错,因为确实就是那么写的,但是为什么我还要写这篇博客呢,因为我想以一个学习者的心态来分析

huang714的专栏 296

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

上一篇: 8大行星
下一篇: mysql中varchar转int
hxpjava1
博客等级 码龄19年 1365粉丝 511原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hxpjava1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值