使用log4net 来记录系统日志

[Asp.Net Core]log4net组件使用 1、概述 log4net是.Net下一个非常优秀的开源日志记录组件。log4net记录日志的功能非常强大。它可以将日志分不同的等级,以不同的格式,输出到不同的媒介。本文主要是介绍如何在Visual Studio2019 ,ASP.NET Core中使用log4net快速创建系统日志,如何扩展以输出自定义字段 2、一个简单的使用实例 第一步:NuNet包管理器下载安装log4net和Microsoft.Extensions.Logging.Log4Net.AspNetCore 第二步: 方法一:Progra 阅读详情
Log4net 记录日志并写入到数据库
具体步骤如下:

1.下载log4net的Dll文件并引入到项目中,在主项目添加对log4net.dll的引用

2.在相应的Globall.cs文件中的Application_Start 事件中写入

protected   void  Application_Start(Object sender, EventArgs e)  
        { 
            log4net.Config.XmlConfigurator.Configure(
                 new System.IO.FileInfo( "log4net.config" )); 
        } 


 说明:其中的 log4net.config 就是日志记录专用的配置文件 ,通常情况下,对log4net 的配置在一个专用的配置文件中,这样可以方便修改与维护

3.在项目对应的 AsserblyInfro.cs文件中要添加以下代码:

[assembly: log4net.Config.XmlConfigurator(ConfigFile  =   "log4net.config" , Watch =  true )]  

 说明: 表示要注册在程序集信息文件中, 受应用程序的保护, Watch=true  表示始终监视应用程序的运行情况,如果设置为false log4net 就不会监视应用程序的运行情况 ,自然也就不会记录日志了

4.在项目的主根目录下添加一个 web配置文件,与web.config同路径,之所以不写入web,config文件, 是因为这样可以单独修改调试部署,也就是非侵入式安装的思想。并将文件的名称改为 log4net.config 对应于上面前两步骤提到的 log4net.config 文件名

5 在<configuration>节点中写配置信息添加

<configSections>  
        <section name="log4net"                                                        
  type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />  
    </configSections>  


 

6. 在 <log4net> 节点中写配置,主要的配置就是在这个节点下

<appender> 节点中定义日志的存储目标,可以是文体文档,可以是数据库,也可以是邮箱中


注意:
    Logger的名称区分大小写并遵循以下规则:

1、如果A logger的名称如果是B logger名称的前缀(通过“.”连接),则说  A
       logger是B logger的祖父级。

2、如果A logger的名称和B logger的名称之间不存在其他的logger名称,则      
       A logger是B logger的父级。
      例如:A logger名称为“Foo.Bar”,B logger名称为“Foo.Bar.Baz”, A为B的父级。名称为“System”的logger是名称为“System.Text.StringBuilder”的祖父级。
3. Root logger位于logger层次级别中的顶级。
  它有例外的三条规则:
1、Root logger总是存在的。
2、Root logger不能通过名称或取。
3、Root logger 有一个默认的Level 值为 Debug。

Logger 可以通过log4net.LogManager类的静态方法GetLogger获取。
 
Level值有: ALL/DEBUG/INFO/WARN/ERROR/FATAL/OFF
   它们的优先级是:  DEBUG <INFO<WARN<ERROR<FATAL

Level 继承规则:如果一个logger没有定义Level,它的Level值将从它的父级(定义了Level)继承。

日志纪录请求通过调用logger实例的输出方法实现。
这些输出方法有Debug,Info,Warn,Error和Fatal。
通过定义,输出方法决定了日志纪录请求的Level。
例如,log是一个logger实例,那么语句log.Info(“..”)的日志纪录请求Level为INFO。 如果日志纪录请求的Level比logger本身定义(或继承)的Level高,则请求是可行的,否则不可行。

 

总结:以下是 log4net 在log4net.config 文件中的具体配置,错误或异常日志要在catch 块中进行捕获。

 

<?xml version="1.0"?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>
  <!--Log4net Begin by Tony  2008.11.20-->
  <log4net>
    <!-- 义日志的存储目标,可以是文体文档,可以是数据库,也可以是邮箱中, 这里存储在数据库中-->
    <appender name="ADONetAppender" type="log4net.Appender.ADONetAppender">
      <!-- 存入DB 前 缓存的数量, 1代表立即存入,这样可以避免频繁的与数据库进行交互-->
      <bufferSize value="10" />
      <!-- 这时定义数据库连接的类型-->
      <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
      <!--数据库连接字符串-->
      <connectionString value="Data Source=.\sqlexpress;Initial Catalog=fengji;User ID=sa;Password=1;" />
      
      <!-- 将日志写入数据库中的 sql 命令语句-->
      <commandText value="INSERT INTO cms_logger ([log_date],[thread],[log_level],[logger],[lmessage],[lexception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" />
      <!-- parameter 是定义参数的节点, 就是参数化sql命令语句,和sql 参数化命令相同,注意这里参数类型要与数据库表中字段的类型,长度,个数一致否则可能写不到数据库中 -->
      <parameter>
        <parameterName value="@log_date" />  <!-- 定义参数的名称 -->
        <dbType value="DateTime" />  <!-- 参数的类型-->
        <layout type="log4net.Layout.RawTimeStampLayout" /> <!-- 控制Appender的输出格式,可以是线性的也可以是XML。-->
      </parameter>
      <parameter>
        <parameterName value="@thread" />
        <dbType value="String" />
        <size value="100" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%t" />
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@log_level" />
        <dbType value="String" />
        <size value="200" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%p" />
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@logger" />
        <dbType value="String" />
        <size value="500" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%logger" />
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@message" />
        <dbType value="String" />
        <size value="2000" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%m" />
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@exception" />
        <dbType value="String" />
        <size value="4000" />
        <layout type="log4net.Layout.ExceptionLayout" />
      </parameter>
    </appender>
    <!-- 设定优先级,选择 log目标  Logger 可以通过log4net.LogManager类的静态方法GetLogger获取。  Level值有:ALL/DEBUG/INFO/WARN/ERROR/FATAL/OFF 
     它们的级别关系是 : DEBUG <INFO<WARN<ERROR<FATAL
    -->
    <root>
      <level value="ERROR"/>
      <level value="WARN"/>
      <level value="INFO"/>
      <level value="DEBUG"/>
      <level value="FINE"/>
      <appender-ref ref="ADONetAppender" />
    </root>
    <!--  对特殊的目录,设置特殊的优先级 -->
    <logger name="iNotes">
      <level value="WARN"/>
      <level value="INFO"/>
      <level value="DEBUG"/>
      <level value="FINE"/>
      <appender-ref ref="ADONetAppender"/>
    </logger>
    <logger name="StellaLogger">
      <level value="ALL"/>
      <appender-ref ref="AdoNetAppender" />
    </logger>
  </log4net>
  <!--Log4net End-->
</configuration>


对就的后台代码:

        // 初始化 log4net 日志记录器
        private static log4net.ILog myLogger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);


        public ActionResult Index()
        {

           
            myLogger.Info(DateTime.Now.ToString() + ": loging successs" );
            //  调试消息
            myLogger.Debug("这是hansong的LOG DEBUG测试!");
            // 错误消息
            myLogger.Error("发生错误,系统已经记录到,请联系管理员!");

            return View();
        }


 具体的参数可以参考:
    http://blog.sina.com.cn/s/blog_6d1c583c01010tf3.html

 

Log4net详细说明使用 1、概述 log4net是.Net下一个非常优秀的开源日志记录组件。log4net记录日志的功能非常强大。它可以将日志分不同的等级,以不同的格式,输出到不同的媒介。本文主要是介绍如何在Visual Studio2008中使用log4net快速创建系统日志,如何扩展以输出自定义字段。 2、一个简单的使用实例 第一步:在项目中添加对log4net.dll的引用,这里引用版本是1.2.10.0。 第二步:程序启动时读取log4net的配置文件。 如果是CS程序,在根目录的Program.cs中的Main方法中添加: log4net.Config.XmlConfigurator.Configure(); 如果是BS程序,在根目录的Global.asax.cs(没有新建一个)中的Application_Start方法中添加: log4net.Config.XmlConfigurator.Configure(); 无论BS还是CS程序都可直接在项目的AssemblyInfo.cs文件里添加以下的语句: [assembly: log4net.Config .XmlConfigurator()] 也可以使用自定义的配置文件,具体请参见4.4 关联配置文件。 第三步:修改配置文件。如果是CS程序,则在默认的App.config文件(没有新建一个)中添加内容;如果是BS程序,则添加到Web.config文件中,添加内容一样,这里不再列出。 App.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="LogFileAppender" /> <appender-ref ref="ConsoleAppender" /> </root> <logger name="testApp.Logging"> <level value="DEBUG"/> </logger> <appender name="LogFileAppender" type="log4net.Appender.FileAppender" > <param name="File" value="log-file.txt" /> <param name="AppendToFile" value="true" /> <layout type="log4net.Layout.PatternLayout"> <param name="Header" value="[Header] "/> <param name="Footer" value="[Footer] "/> <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" /> </layout> <filter type="log4net.Filter.LevelRangeFilter"> <param name="LevelMin" value="DEBUG" /> <param name="LevelMax" value="WARN" /> </filter> </appender> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" > <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" /> </layout> </appender> </log4net> </configuration> 第四步:在程序使用。 log4net.ILog log = log4net.LogManager.GetLogger("testApp.Logging");//获取一个日志记录器 log.Info(DateTime.Now.ToString() + ": login success");//写入一条新log 这样就将信息同时输出到控制台和写入到文件名为“log-file.txt”的文件中,其中“log-file.txt”文件的路径是当前程序运行所在目录;也可以定义为绝对路径,配置如: <param name="File" value="C:/log-file.txt" />就写入C盘根目录下log-file.txt文件中 立即下载

相关推荐

SPSS回归分析(线性:一元(简单)和多重;非线性logistic)

SPSS线性回归分析回归分析一、线性模型(针对连续因变量,线性关系)(一)简单线性回归(一元线性回归)1、绘制散点图2、建立简单(一元)线性回归模型3、建立模型后,检查预测结果(二)多重回归分析1、绘制矩阵分布散点图(论文专用你懂的)2、建立多重回归模型point 1:自变量加入方法:逐步(步进)法3、建立模型后,检查预测结果二、非线性模型(将非线性问题转换为线性问题)1、logistic分析的回归模型1.1 建立回归模型1.2 利用回归模型进行预测 根据之前的学习,通过评价实验得到了主观数据, 通过 描述

weixin_44394352的博客 5万+

log4net部分配置说明

第一步: 添加并应用Log4net.dll。然后在Web.config文件中添加下面的配置局 <configSections> <sectionname="log4net"type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/> </configSections&gt...

sinolover的专栏 704

嵌套交叉验证的‘双循环’哲学:为什么你的模型评估总是不准?

本文深入探讨了嵌套交叉验证(Nested Cross-Validation)在机器学习模型评估中的关键作用,揭示了传统交叉验证方法存在的偏差问题。通过双重循环设计,嵌套交叉验证有效隔离数据,提供无偏评估,显著提升模型在真实场景中的性能预测准确性。文章还提供了工程实践中的优化策略和量化分析,帮助开发者在计算成本与评估精度之间找到平衡。

b3n4m5q6w7的博客 225

log4net 配置及使用

1.引入库log4net.dll 2.在AssemblyInfo.cs中添加一行: [assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)] 3.添加log4net.config配置文件: &lt;?xml ver...

zhjmyx的专栏 1029

从DBC到ARXML:详解DaVinci Configurator中通信栈的自动化配置逻辑

本文深入解析了Vector公司DaVinci Configurator工具如何将DBC文件自动转换为符合AUTOSAR标准的ARXML配置,详细介绍了从DBC到ARXML的映射逻辑、自动化配置的边界与陷阱,以及工程实践中的优化策略。帮助工程师高效配置汽车电子系统中的通信协议,提升项目开发效率。

weixin_30279671的博客 717

DoDAF2.0与UAF1.0与UPDM与IBD与Rhapsody与MagicDraw与SysML

参考:fr=ge_alafr=ge_ala。

计算机辅助工程 1420

log4net 配置与应用

web.config配置如下:

679

clock min pulse width检查

高电平脉宽 = clock fall edge到达FF/CK的时间 - clock rise edge到达FF/CK的时间;低电平脉宽 = 下一T clock rise edge到达FF/CK的时间 - clock fall edge到达FF/CK的时间。而required pulse width是根据FF/CK处的transition,根据查找表计算得到的。为什么clock transition越大,会导致required pulse width越大呢?5、 降低clock上的串扰。

芯冰乐 577

Log4Net详解

Log4net库是.Net下一个非常优秀的开源日志记录组件,是一个帮助程序员将日志信息输出到各种目标(控制台、文件、数据库等)的工具。如果应用程序出现问题,启用日志记录有助于定位问题。日志输出可能非常庞大,以至于很快就会变得不堪重负。log4net 的显着特征之一是分层记录器的概念。使用这些记录器可以有选择地控制以任意粒度输出哪些日志语句。使用 log4net,可以在运行时修改配置文件,你不需要重新编译源代码就能改变日志的输出形式。官网地址:https://logging.apache.org/log4ne

李宥的博客 1万+

【好玩的游戏项目】使用Docker快速部署属于你的RPG网页小游戏

【好玩的游戏项目】使用Docker快速部署属于你的RPG网页小游戏

jks212454的博客 5577

第076篇:大涡模拟进阶

大涡模拟(Large Eddy Simulation, LES)是介于直接数值模拟(DNS)和雷诺平均方法(RANS)之间的重要湍流模拟方法。本文深入介绍动态Smagorinsky模型、尺度相似模型、WALE模型和隐式LES等高级亚格子模型。通过Python实现槽道湍流和圆柱绕流的LES求解器,详细展示近壁面处理、动态系数计算和亚格子应力建模技术。大涡模拟,亚格子模型,动态模型,Smagorinsky,WALE模型,尺度相似模型,近壁面处理,槽道湍流LES的核心思想是对Navier-Stokes方程进行空间

2401_87715305的博客 740

log4net配置

管理 NuGet 程序包 添加 log4net引用 Web.config文件 &lt;configSections&gt; &lt;section name="log4net" type="System.Configuration.IgnoreSectionHandler" /&gt; &lt;/configSections&gt; &lt;log4net&gt; &lt;ap.

KingCruel的专栏 2021

echarts 饼图(加载进度条动画效果)

1、外侧动画细线效果运动“custom”自定义系列中“renderItem”属性来实现,动态修改起始角度和终止角度。2、圆环使用" pie "类型添加两个data值来画百分比圆环,动态修改data中的值。

God's asylum的博客 1631

使用log4net组件记录系统日志

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

weixin_30344995的博客 85

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

简单配置log4Net记录系统日志

这里简单介绍关于如何使用log4Net来开速配置日志记录 首先要引用log4net.dll, 然后配置,这里采用的是直接在Web.config文件中配置,configSections这个节点一定一定要放在configuration下面的第一个位置 &lt;configSections&gt; &lt;section name="log4net" type="log4net.Co...

zlyecf的专栏 205

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

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

版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.csdn.net/hxpjava1/article/details/32714855 ...

weixin_30343157的博客 218

OV9734 DATASHEET,完整规格书

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

log4net的使用方法

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

johnny的专栏 801

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

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

dmz1981的专栏 5284

C# 使用Log4Net记录日志(基础篇)

最近在“伯乐在线”上看到这么篇文章《用Log4Net来记录系统的日志信息》,由于没有用到过Log4Net这个东东,就有了下面这篇文章: 第一步:下载Log4Net 下载地址:http://logging.apache.org/log4net/download_log4net.cgi 把下载的 log4...

weixin_34004750的博客 660

非常完善的Log4net详细说明

1、概述 log4net是.Net下一个非常优秀的开源日志记录组件。log4net记录日志的功能非常强大。它可以将日志分不同的等级,以不同的格式,输出到不同的媒介。本文主要是介绍如何在Visual Studio2008中使用log4net快速创建系统日志,如何扩展以输出自定义字段。 2、一个简单的使用实例 第一步:在项目中添加对log4net.dll的引用,这里引用版本是1.2.10

黑暗天堂 948

自动日志组件 - Log4net应用(转贴来自http://dotnet.3yee.com/)

自动日志组件 - Log4net应用 log4net与log4j分别是for dotnet 与 for java的一双log记录组件姐妹,许多开源项目都用它们来记录系统日志,使用非常方便: 将log4net.dll加入到项目中,然后使用 public class AreaImpl{private static readonly log4net.ILog log = log4net...

weixin_34023863的博客 132

Log4net系统日志

Log4net系统日志 首先:引用Log4net.dll,按照说明进行web.config配置 然后:在Global中写入: protected void Application_Start(object sender, EventArgs e) { log4net.Config.XmlCon...

weixin_30888027的博客 78

log4net学习

1、概述 log4net是.Net下一个非常优秀的开源日志记录组件。log4net记录日志的功能非常强大。它可以将日志分不同的等级,以不同的格式,输出到不同的媒介。本文主要是介绍如何在Visual Studio2008中使用log4net快速创建系统日志,如何扩展以输出自定

junshangshui的专栏 1028
上一篇: Bit 类型
下一篇: TortoiseGit + GitHub 使用指南
SpringFiled
博客等级 码龄15年 9粉丝 78原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值