zoukankan      html  css  js  c++  java
  • log4net记录系统错误日志到文本文件用法详解(最新)

    此配置文件可以直接拿来用,配置文件上面有详细用法说明,里面也有详细注释说明。此配置文件涵盖按照日期记录和按照文件大小(建议)的实例。

    又包括:按照Fatal、Info、Error、Debug、Warn的所有级别来分别存放不同位置or不同文件的实例。直接上代码更直观,如下:

    <?xml version="1.0" encoding="utf-8" ?>
    <!--具体用法:1、把log4net.config文件放到和Web.config文件同级目录
                  2、在Web.config文件的<appSettings>下 添加:<add key="log4net.Config" value="log4net.config"/><add key="log4net.Config.Watch" value="True"/>
                  3、把log4net.dll放到bin下并引用
                  4、调用类或基类里 添加:public static readonly log4net.ILog Log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
                  5、开始应用:Log.Fatal("Fatal");Log.Info("Info");Log.Error("Error");Log.Debug("Debug");Log.Warn("Warn");
    -->
    <configuration>
      <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net, Version=1.2.11.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a" />
      </configSections>
      <log4net>
        <root>
          <!--定义日志类型-->
          <appender-ref ref="RollingFileAppender" />     <!--定义所有类型的日志,所有日志都记录下来-->
          <appender-ref ref="FatalRollingFileAppender"/> <!--定义只记录Fatal类型的日志记录-->
          <appender-ref ref="ErrorRollingFileAppender" /><!--定义只记录Error类型的日志记录-->
          <appender-ref ref="InfoRollingFileAppender" /> <!--定义只记录Info类型的日志记录-->
          <appender-ref ref="DebugRollingFileAppender" /><!--定义只记录Debug类型的日志记录-->
          <appender-ref ref="WarnRollingFileAppender" /> <!--定义只记录Warn类型的日志记录-->
        </root>
        <!--所有日志记录到一个文件-->
        <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender" >
          <file value="Logfulllog.txt" /><!--日志文件存放位置-->
          <appendToFile value="true" />  <!--是否追加-->
          <rollingStyle value="Size" />  <!--按照文件大小or日期来记录文件-->
          <maxSizeRollBackups value="10" /><!--备份文件的个数-->
          <maximumFileSize value="100KB" /><!--设定单个文件大小,超过大小另新建-->
          <staticLogFileName value="true" /><!--是否使用静态文件名-->
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level [%rms used] - %message%newline" /><!--输出日志每行的头部记录文件-->
          </layout>
        </appender>
        <!--此实例是按照日期记录日志:不建议使用-->
        <appender name="FatalRollingFileAppender" type="log4net.Appender.RollingFileAppender" LEVEL="Fatal">
          <file value="LogFatal.txt" /><!--日志文件存放位置-->
          <appendToFile value="true" /> <!--是否追加-->
          <rollingStyle value="Date" /> <!--按照日期来记录日志-->
          <datePattern value="yyyyMMdd&quot;.log&quot;" /> <!--重命名日志文件的日期后缀规则-->
          <staticLogFileName value="true" /><!--是否使用静态文件名-->
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" /><!--输出日志每行的头部记录文件-->
          </layout>
          <filter type="log4net.Filter.LevelRangeFilter">
            <param name="LevelMin" value="Fatal" />  <!--这里很关键:此处和上面的LEVEL="Fatal"是对应的,eg:如果是记录Error日志,那么上面和这里三处都是Error-->
            <param name="LevelMax" value="Fatal" />  <!--这两行必须一致才行-->
          </filter>
        </appender>
        <!--此实例是按照文件大小记录日志:建议使用-->
        <appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender" LEVEL="Error">
          <file value="LogError.txt" /><!--日志文件存放位置-->
          <appendToFile value="true" /><!--是否追加-->
          <rollingStyle value="Size" /><!--按照文件大小来记录日志:建议用-->
          <maxSizeRollBackups value="10" /> <!--最多日志文件保留个数,10:只保留最新的10个文件-->
          <maximumFileSize value="20MB" /> <!--超过指定大小后,另新建文件,20MB:超过20M后新建-->
          <staticLogFileName value="true" /><!--是否使用静态文件名-->
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level [%logger] [%property{NDC}] - %message%newline" /><!--输出日志每行的头部记录文件-->
          </layout>
          <filter type="log4net.Filter.LevelRangeFilter">
            <param name="LevelMin" value="Error" /><!--这里很关键:此处和上面的LEVEL="Fatal"是对应的,eg:如果是记录Error日志,那么上面和这里三处都是Error-->
            <param name="LevelMax" value="Error" /> <!--这两行、上面 LEVEL="Error" 必须一致才行-->
          </filter>
        </appender>
        <appender name="InfoRollingFileAppender" type="log4net.Appender.RollingFileAppender" LEVEL="Info">
          <file value="LogInfo.txt" />
          <appendToFile value="true" />
          <rollingStyle value="Size" />
          <maxSizeRollBackups value="10" />
          <maximumFileSize value="1024KB" />
          <staticLogFileName value="true" />
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level [%logger] [%property{NDC}] - %message%newline" />
          </layout>
          <filter type="log4net.Filter.LevelRangeFilter">
            <param name="LevelMin" value="Info" />
            <param name="LevelMax" value="Info" />
          </filter>
        </appender>
        <appender name="DebugRollingFileAppender" type="log4net.Appender.RollingFileAppender" LEVEL="Debug">
          <file value="LogDebug.txt" />
          <appendToFile value="true" />
          <rollingStyle value="Size" />
          <maxSizeRollBackups value="10" />
          <maximumFileSize value="1024KB" />
          <staticLogFileName value="true" />
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level [%logger] [%property{NDC}] - %message%newline" />
          </layout>
          <filter type="log4net.Filter.LevelRangeFilter">
            <param name="LevelMin" value="Debug" />
            <param name="LevelMax" value="Debug" />
          </filter>
        </appender>
        <appender name="WarnRollingFileAppender" type="log4net.Appender.RollingFileAppender" LEVEL="Warn">
          <file value="LogWarn.txt" />
          <appendToFile value="true" />
          <rollingStyle value="Size" />
          <maxSizeRollBackups value="10" />
          <maximumFileSize value="1024KB" />
          <staticLogFileName value="true" />
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level [%logger] [%property{NDC}] - %message%newline" />
          </layout>
          <filter type="log4net.Filter.LevelRangeFilter">
            <param name="LevelMin" value="Warn" />
            <param name="LevelMax" value="Warn" />
          </filter>
        </appender>
      </log4net>
    </configuration>

    后台调用如下:

    namespace MvcApplication8.Controllers
    {
        public class HomeController : Controller
        {
            public static readonly log4net.ILog Log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
            public ActionResult Index()
            {
                Log.Fatal("Fatal");
                Log.Info("Info");
                Log.Error("Error");
                Log.Debug("Debug");
                Log.Warn("Warn");
                ViewBag.Message = "欢迎使用 ASP.NET MVC!";
    
                return View();
            }
        }
    }

     注意:切忌要在你的程序config文件里加上这句话::<appSettings><add key="log4net.Config" value="log4net.config"/><add key="log4net.Config.Watch" value="True"/></appSettings>

    <!--具体用法:1、把log4net.config文件放到和Web.config文件同级目录
                  2、在Web.config文件的<appSettings>下 添加:<add key="log4net.Config" value="log4net.config"/><add key="log4net.Config.Watch" value="True"/>
                  3、把log4net.dll放到bin下并引用
                  4、调用类或基类里 添加:public static readonly log4net.ILog Log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
                  5、开始应用:Log.Fatal("Fatal");Log.Info("Info");Log.Error("Error");Log.Debug("Debug");Log.Warn("Warn");
    -->

  • 相关阅读:
    mui-app 拍照、视频、图片选择,自动上传
    vue table大屏自动刷新滚动效果
    ant-design vue table表格高亮某一行 某一格
    vue-cli@3 ht 引入使用
    JAVA匿名内部类
    JAVA基本类型和引用类型
    引用 IO流学习详细教程
    JAVA多态
    JAVA数据类型能串门不?
    JAVA基本数据类型
  • 原文地址:https://www.cnblogs.com/yonguibe/p/3471747.html
Copyright © 2011-2022 走看看