C#log4net的使用教程

1.我们在工具层使用NuGet添加log4net引用包

在这里插入图片描述

2.添加LogHelper帮助类

   public class LogHelper
    {
        private static ILog _lognet = LogManager.GetLogger(typeof(LogHelper));
        public static void WriterErrorLog(string logMessage) 
        {
            _lognet.Error(logMessage);
        }
        public static void WriterInfoLog(string logMessage) 
        {
            _lognet.Info(logMessage);
        }
    }

3.我们把log4net.config添加到我们web文件中

	**在web层按照log4net  NewGet包**
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  </configSections>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
  </startup>
  <log4net>
    <appender name="RollingInfoFile" type="log4net.Appender.RollingFileAppender">
      <file value="Log/Info/" />
      <appendToFile value="true" />
      <!--记录日志写入文件时,不锁定文本文件,防止多线程时不能写Log,官方说线程非安全-->
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <Encoding value="UTF-8" />
      <!-- 每个文件的大小限制  -->
      <maximumFileSize value="1MB" />
      <!-- 切割最多文件数 -1表示不限制产生日志文件数-->
      <MaxSizeRollBackups value="-1" />
      <DatePattern value="yyyyMMdd&quot;.log&quot;" />
      <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
      <RollingStyle value="Composite" />
      <param name="DatePattern" value="yyyy-MM-dd/&quot;Info.log&quot;"  />
      <StaticLogFileName value="false" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="[%date{yyyy-MM-dd HH:mm:ss}] %-5logger - %m%n"/>
      </layout>
      <!--日志等级:OFF > FATAL > ERROR > WARN > INFO > DEBUG  > ALL -->
      <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="INFO" />
        <levelMax value="INFO" />
      </filter>
    </appender>

    <appender name="RollingErrorFile" type="log4net.Appender.RollingFileAppender">
      <file value="Log/Error/" />
      <appendToFile value="true" />
      <!--记录日志写入文件时,不锁定文本文件,防止多线程时不能写Log,官方说线程非安全-->
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <Encoding value="UTF-8" />
      <!-- 每个文件的大小限制  -->
      <maximumFileSize value="1MB" />
      <!-- 切割最多文件数 -1表示不限制产生日志文件数-->
      <MaxSizeRollBackups value="-1" />
      <DatePattern value="yyyyMMdd&quot;.log&quot;" />
      <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
      <RollingStyle value="Composite" />
      <param name="DatePattern" value="yyyy-MM-dd/&quot;Error.log&quot;"  />
      <StaticLogFileName value="false" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="[%date{yyyy-MM-dd HH:mm:ss}] %-5logger - %m%n"/>
      </layout>
      <!--日志等级:OFF > FATAL > ERROR > WARN > INFO > DEBUG  > ALL -->
      <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="Error" />
        <levelMax value="Fatal" />
      </filter>
    </appender>

    <root>
      <level value="ALL"/>
      <appender-ref ref="RollingInfoFile" />
      <appender-ref ref="RollingErrorFile" />
    </root>

  </log4net>
</configuration>

4.在web层Global.asax文件中Application_Start();中添加一句代码

            //log4net
            log4net.Config.XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(Server.MapPath("/log4net.config")));
            LogHelper.WriteInfoLog("应用程序启动");

5.在这个类中重新写两个方法

        void Application_End(object sender, EventArgs e)
        {
            //  在应用程序关闭时运行的代码
            LogHelper.WriteInfoLog("应用程序关闭"); 
        }
        void Application_Error(object sender, EventArgs e)
        {
            // 在出现未处理的错误时运行的代码
            var exception = Server.GetLastError();
            if (exception == null)
                return;
            LogHelper.WriteErrorLog(exception.ToString());
#if (!DEBUG)
            Server.ClearError();
#endif
        }

6.当我们需要写日志的时候

//错误日志
 LogHelper.WriteErrorLog(exception.ToString());
 //日志信息
 LogHelper.WriteInfoLog(exception.ToString());

日志会记录在我们web层Log文件夹中

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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文件中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值