log4net日志功能使用

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:    早就想了解下log4net这个组件的使用,直至今日才有时间学习了一下,现在把学习的新的总结如下:   (1)、在项目中添加log4net.dll引用。

   早就想了解下log4net这个组件的使用,直至今日才有时间学习了一下,现在把学习的新的总结如下:

 

(1)、在项目中添加log4net.dll引用。说明:该版本是1.2.10.0 ,log4net for .net framework2.0

 

(2)、在Web.Config文件中添加如下配置代码:

............

 <!--log4net配置 BEGIN-->
  <configSections>
       <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  </configSections>
  <!---日志记录器,可以有一个,也可以有多个-->
  <log4net>
    <logger name="AppLogger1">
      <level value="INFO"></level>
      <appender-ref ref="LogFileAppender"></appender-ref>
    </logger>
    <logger name="AppLogger2">
      <level value="DEBUG"></level>
      <appender-ref ref="rollingFile"></appender-ref>
    </logger>
    <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
      <param name="File" value="SysLog/ErrorLog.txt"/>
      <param name="AppendToFile" value="true"/>
      <layout type="log4net.Layout.PatternLayout">
        <param name="Header" value="----------Start----------&#xA;"/>
        <param name="Footer" value="----------End----------&#xA;"/>
        <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] %X{auth} - %m%n"/>
      </layout>
      <filter type="log4net.Filter.LevelRangeFilter">
        <param name="LevelMin" value="DEBUG"/>
        <param name="LevelMax" value="FATAL"/>
      </filter>
    </appender>
    <appender name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net">
      <param name="File" type="" value="log/"/>
      <param name="AppendToFile" value="true"/>
      <param name="RollingStyle" value="Date"/>
      <param name="DatePattern" value="yyyyMMdd"/>
      <param name="StaticLogFileName" value="false"/>
      <Layout type="log4net.Layout.PatternLayout,log4net">
        <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n"/>
        <param name="Header" value="----------Start----------&#xA;"/>
        <param name="Footer" value="----------End----------&#xA;"/>
      </Layout>
    </appender>
  </log4net>
  <!--log4net配置 END-->

..................

 

(3)、在项目中添加一个Global.asax(全局应用程序类),在Application_Start()方法中添加如下一行代码:

     void Application_Start(object sender, EventArgs e)
    {
        // 在应用程序启动时运行的代码
        log4net.Config.XmlConfigurator.Configure();

    }

 

(4)、按(2)步骤中红色部分标注,在项目根目录下,创建一个SysLog的文件夹,里面增加一个ErrorLog.txt的文本文件,用于记录错误日志的详细信息。

 

(5)、在Web.Config文件中添加数据库连接字符串的配置代码:(这里用到的MSSQL2000数据库,这里可以根据需要进行修改设置)

    <appSettings>
    <add key="ConnectionString" value="Data Source=.;uid=sa;pwd=;Database=master"/>
  </appSettings>

 

(6)、这里只举简单例子作简单说明:

如在Default .aspx.cs文件中

         1)、首先添加using System.Data.SqlClient;的命名空间引用。 

         2)、protected void Page_Load(object sender, EventArgs e)
              {
                    try
                   {
                            string conString = System.Configuration.ConfigurationManager.AppSettings["ConnectionString1"];
                            SqlConnection con = new SqlConnection(conString);
                            con.Open();

                            Response.Write("<script language=javascript>alert('数据库连接成功!')</script>");

                   }
                   catch (Exception ex)
                   {
                            Response.Write("<script language=javascript>alert('数据库连接失败!')</script>");
                            log4net.ILog log = log4net.LogManager.GetLogger("AppLogger1");
                            log.Info("数据库连接失败,具体原因如下:", ex);
                   }
              }

   这里的红色标记部分在Web.Config文件中配置的名称为ConnectionString,由于连接字符串书写错误,造成错误,这样的错误就在ErrorLog.txt文件中记录下来了。以下是摘自其中的日志信息。

 

----------Start----------
2009-10-14 10:21:54,093 [4] INFO  AppLogger1 [(null)] (null) - 数据库连接失败,具体原因如下:
System.InvalidOperationException: ConnectionString 属性尚未初始化。
   在 System.Data.SqlClient.SqlConnection.PermissionDemand()
   在 System.Data.SqlClient.SqlConnectionFactory.PermissionDemand(DbConnection outerConnection)
   在 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
   在 System.Data.SqlClient.SqlConnection.Open()
   在 _Default.Page_Load(Object sender, EventArgs e) 位置 j:/asp.net3.5/log4net/Default.aspx.cs:行号 21
----------End----------

 

以上只是本人的学习的总结,举例有点不妥,像这样的错误时不会在项目总出现的,这里只是为了说明log4net的使用,有什么不妥,望大家不吝赐教。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
22天前
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
165 30
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
2月前
|
Rust 前端开发 JavaScript
Tauri 开发实践 — Tauri 日志记录功能开发
本文介绍了如何为 Tauri 应用配置日志记录。Tauri 是一个利用 Web 技术构建桌面应用的框架。文章详细说明了如何在 Rust 和 JavaScript 代码中设置和集成日志记录,并控制日志输出。通过添加 `log` crate 和 Tauri 日志插件,可以轻松实现多平台日志记录,包括控制台输出、Webview 控制台和日志文件。文章还展示了如何调整日志级别以优化输出内容。配置完成后,日志记录功能将显著提升开发体验和程序稳定性。
88 1
Tauri 开发实践 — Tauri 日志记录功能开发
|
2月前
|
XML JSON Java
Logback 与 log4j2 性能对比:谁才是日志框架的性能王者?
【10月更文挑战第5天】在Java开发中,日志框架是不可或缺的工具,它们帮助我们记录系统运行时的信息、警告和错误,对于开发人员来说至关重要。在众多日志框架中,Logback和log4j2以其卓越的性能和丰富的功能脱颖而出,成为开发者们的首选。本文将深入探讨Logback与log4j2在性能方面的对比,通过详细的分析和实例,帮助大家理解两者之间的性能差异,以便在实际项目中做出更明智的选择。
248 3
|
2月前
|
存储 缓存 关系型数据库
MySQL事务日志-Redo Log工作原理分析
事务的隔离性和原子性分别通过锁和事务日志实现,而持久性则依赖于事务日志中的`Redo Log`。在MySQL中,`Redo Log`确保已提交事务的数据能持久保存,即使系统崩溃也能通过重做日志恢复数据。其工作原理是记录数据在内存中的更改,待事务提交时写入磁盘。此外,`Redo Log`采用简单的物理日志格式和高效的顺序IO,确保快速提交。通过不同的落盘策略,可在性能和安全性之间做出权衡。
1648 14
|
2月前
|
Python
log日志学习
【10月更文挑战第9天】 python处理log打印模块log的使用和介绍
35 0
|
2月前
|
数据可视化
Tensorboard可视化学习笔记(一):如何可视化通过网页查看log日志
关于如何使用TensorBoard进行数据可视化的教程,包括TensorBoard的安装、配置环境变量、将数据写入TensorBoard、启动TensorBoard以及如何通过网页查看日志文件。
218 0
|
2月前
|
存储 分布式计算 NoSQL
大数据-136 - ClickHouse 集群 表引擎详解1 - 日志、Log、Memory、Merge
大数据-136 - ClickHouse 集群 表引擎详解1 - 日志、Log、Memory、Merge
44 0
|
2月前
|
缓存 Linux 编译器
【C++】CentOS环境搭建-安装log4cplus日志组件包及报错解决方案
通过上述步骤,您应该能够在CentOS环境中成功安装并使用log4cplus日志组件。面对任何安装或使用过程中出现的问题,仔细检查错误信息,对照提供的解决方案进行调整,通常都能找到合适的解决之道。log4cplus的强大功能将为您的项目提供灵活、高效的日志管理方案,助力软件开发与维护。
60 0
|
3月前
|
Java
日志框架log4j打印异常堆栈信息携带traceId,方便接口异常排查
日常项目运行日志,异常栈打印是不带traceId,导致排查问题查找异常栈很麻烦。
|
3月前
|
存储 监控 数据可视化
SLS 虽然不是直接使用 OSS 作为底层存储,但它凭借自身独特的存储架构和功能,为用户提供了一种专业、高效的日志服务解决方案。
【9月更文挑战第2天】SLS 虽然不是直接使用 OSS 作为底层存储,但它凭借自身独特的存储架构和功能,为用户提供了一种专业、高效的日志服务解决方案。
163 9