log4net配置使用

  • log4net配置使用已关闭评论
  • 151 次浏览
  • A+
所属分类:.NET技术
摘要

到nuget里下载log4net 这里为帮组类 可以改为静态方法 然后打开项目在webapi下面安装Microsoft.Extensions.Logging.Log4Net.AspNetCore

到nuget里下载log4net

 这里为帮组类 可以改为静态方法 

        private static ILog logger;         static LogImp()//这个是构造函数         {             if (logger == null)             {                 var repository = LogManager.CreateRepository("WebApplication1");///这里改为项目名称                 //指定配置文件                 XmlConfigurator.Configure(repository, new FileInfo("log4net.config"));                 lock (locker)                 {                     if (logger == null)                     {                         lock (locker)                             logger = LogManager.GetLogger(repository.Name, "RollingLogFileAppender");                     }                 }              }         }

  /// <summary>         /// 调试信息         /// </summary>         /// <param name="message"></param>         /// <param name="exception"></param>         public void Debug(string message, Exception exception = null)         {              if (exception == null)                 logger.Debug(message);             else                 logger.Debug(FormartLog(message, exception));          }         /// <summary>         /// 一般信息         /// </summary>         /// <param name="message"></param>         /// <param name="exception"></param>         public void Info(string message, Exception exception = null)         {              if (exception == null)                 logger.Info(message);             else                 logger.Info(FormartLog(message, exception));         }          /// <summary>         /// 警告         /// </summary>         /// <param name="message"></param>         /// <param name="exception"></param>         public void Warn(string message, Exception exception = null)         {              if (exception == null)                 logger.Warn(message);             else                 logger.Warn(FormartLog(message, exception));          }          /// <summary>         /// 一般错误         /// </summary>         /// <param name="message"></param>         /// <param name="exception"></param>         public void Error(string message, Exception exception = null)         {              if (exception == null)                 logger.Error(message);             else                 logger.Error(FormartLog(message, exception));         }           /// <summary>         /// 致命错误         /// </summary>         /// <param name="message"></param>         /// <param name="exception"></param>         public void Fatal(string message, Exception exception = null)         {              if (exception == null)                 logger.Fatal(message);             else                 logger.Fatal(FormartLog(message, exception));          }           /// <summary>         /// 自定义返回格式         /// </summary>         /// <param name="throwMsg"></param>         /// <param name="ex"></param>         /// <returns></returns>         private static string FormartLog(string throwMsg, Exception ex)         {             return string.Format("【错误地点】:{0} rn【异常类型】:{1} rn【异常信息】:{2} rn【堆栈调用】:{3}", new object[] { throwMsg, ex.GetType().Name, ex.Message, ex.StackTrace });         }

然后打开项目在webapi下面安装Microsoft.Extensions.Logging.Log4Net.AspNetCore

log4net配置使用

 

 

<?xml version="1.0" encoding="utf-8"?> <configuration>     <configSections>         <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>     </configSections>      <log4net>         <!-- Debug 将日志以回滚文件的形式写到文件中 -->         <appender name="RollingFileDebug" type="log4net.Appender.RollingFileAppender">             <!-- 日志文件存放位置,可以为绝对路径也可以为相对路径 -->             <file value="Log\Debug" />             <!-- 将日志信息追加到已有的日志文件中-->             <appendToFile value="true" />             <param name="MaxFileSize" value="10240"/>             <param name="MaxSizeRollBackups" value="100"/>             <!-- 最小锁定模式,以允许多个进程可以写入同一个文件 -->             <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />             <!-- 指定按日期切分日志文件 -->             <rollingStyle value="Date" />             <!-- 日志文件的命名规则 -->             <datePattern value="yyyy-MM-dd_HH'.log'" />             <!-- 当将日期作为日志文件的名字时,必须将staticLogFileName的值设置为false -->             <staticLogFileName value="false" />             <layout type="log4net.Layout.PatternLayout">                 <conversionPattern value="【异常时间】:%date【线程ID】:%thread%newline【异常级别】:%5level%newline%message%newline--------------------------------------------------------------------%newline" />             </layout>             <filter type="log4net.Filter.LevelRangeFilter">                 <param name="LevelMin" value="Debug" />                 <param name="LevelMax" value="Debug" />             </filter>         </appender>          <!-- Info 将日志以回滚文件的形式写到文件中 -->         <appender name="RollingFileInfo" type="log4net.Appender.RollingFileAppender">             <!-- 日志文件存放位置,可以为绝对路径也可以为相对路径 -->             <file value="Log\Info\" />             <!-- 将日志信息追加到已有的日志文件中-->             <appendToFile value="true" />             <param name="MaxFileSize" value="10240"/>             <param name="MaxSizeRollBackups" value="100"/>             <!-- 最小锁定模式,以允许多个进程可以写入同一个文件 -->             <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />             <!-- 指定按日期切分日志文件 -->             <rollingStyle value="Date" />             <!-- 日志文件的命名规则 -->             <datePattern value="yyyy-MM-dd_HH'.log'" />             <!-- 当将日期作为日志文件的名字时,必须将staticLogFileName的值设置为false -->             <staticLogFileName value="false" />             <layout type="log4net.Layout.PatternLayout">                 <conversionPattern value="【异常时间】:%date【线程ID】:%thread%newline【异常级别】:%5level%newline%message%newline--------------------------------------------------------------------%newline" />             </layout>             <filter type="log4net.Filter.LevelRangeFilter">                 <param name="LevelMin" value="Info" />                 <param name="LevelMax" value="Info" />             </filter>         </appender>          <!-- Warn 将日志以回滚文件的形式写到文件中 -->         <appender name="RollingFileWarn" type="log4net.Appender.RollingFileAppender">             <!-- 日志文件存放位置,可以为绝对路径也可以为相对路径 -->             <file value="Log\Warn\" />             <!-- 将日志信息追加到已有的日志文件中-->             <appendToFile value="true" />             <param name="MaxFileSize" value="10240"/>             <param name="MaxSizeRollBackups" value="100"/>             <!-- 最小锁定模式,以允许多个进程可以写入同一个文件 -->             <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />             <!-- 指定按日期切分日志文件 -->             <rollingStyle value="Date" />             <!-- 日志文件的命名规则 -->             <datePattern value="yyyy-MM-dd_HH'.log'" />             <!-- 当将日期作为日志文件的名字时,必须将staticLogFileName的值设置为false -->             <staticLogFileName value="false" />             <layout type="log4net.Layout.PatternLayout">                 <conversionPattern value="【异常时间】:%date【线程ID】:%thread%newline【异常级别】:%5level%newline%message%newline--------------------------------------------------------------------%newline" />             </layout>             <filter type="log4net.Filter.LevelRangeFilter">                 <param name="LevelMin" value="Warn" />                 <param name="LevelMax" value="Warn" />             </filter>         </appender>          <!-- Error 将日志以回滚文件的形式写到文件中 -->         <appender name="RollingFileError" type="log4net.Appender.RollingFileAppender">             <!-- 日志文件存放位置,可以为绝对路径也可以为相对路径 -->             <file value="Log\Error\" />             <!-- 将日志信息追加到已有的日志文件中-->             <appendToFile value="true" />             <param name="MaxFileSize" value="10240"/>             <param name="MaxSizeRollBackups" value="100"/>             <!-- 最小锁定模式,以允许多个进程可以写入同一个文件 -->             <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />             <!-- 指定按日期切分日志文件 -->             <rollingStyle value="Date" />             <!-- 日志文件的命名规则 -->             <datePattern value="yyyy-MM-dd_HH'.log'" />             <!-- 当将日期作为日志文件的名字时,必须将staticLogFileName的值设置为false -->             <staticLogFileName value="false" />             <layout type="log4net.Layout.PatternLayout">                 <conversionPattern value="【异常时间】:%date【线程ID】:%thread%newline【异常级别】:%5level%newline%message%newline--------------------------------------------------------------------%newline" />             </layout>             <filter type="log4net.Filter.LevelRangeFilter">                 <param name="LevelMin" value="Error" />                 <param name="LevelMax" value="Error" />             </filter>         </appender>          <!-- Fatal 将日志以回滚文件的形式写到文件中 -->         <appender name="RollingFileFatal" type="log4net.Appender.RollingFileAppender">             <!-- 日志文件存放位置,可以为绝对路径也可以为相对路径 -->             <file value="Log\Fatal\" />             <!-- 将日志信息追加到已有的日志文件中-->             <appendToFile value="true" />             <param name="MaxFileSize" value="10240"/>             <param name="MaxSizeRollBackups" value="100"/>             <!-- 最小锁定模式,以允许多个进程可以写入同一个文件 -->             <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />             <!-- 指定按日期切分日志文件 -->             <rollingStyle value="Date" />             <!-- 日志文件的命名规则 -->             <datePattern value="yyyy-MM-dd_HH'.log'" />             <!-- 当将日期作为日志文件的名字时,必须将staticLogFileName的值设置为false -->             <staticLogFileName value="false" />             <layout type="log4net.Layout.PatternLayout">                 <conversionPattern value="【异常时间】:%date【线程ID】:%thread%newline【异常级别】:%5level%newline%message%newline--------------------------------------------------------------------%newline" />             </layout>             <filter type="log4net.Filter.LevelRangeFilter">                 <param name="LevelMin" value="Fatal" />                 <param name="LevelMax" value="Fatal" />             </filter>         </appender>          <logger name="RollingLogFileAppender">             <level value="ALL" />             <appender-ref ref="RollingFileDebug" />             <appender-ref ref="RollingFileInfo" />             <appender-ref ref="RollingFileWarn" />             <appender-ref ref="RollingFileError" />             <appender-ref ref="RollingFileFatal" />         </logger>          <!--<root>     控制级别,由低到高:ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF     比如定义级别为INFO,则INFO级别向下的级别,比如DEBUG日志将不会被记录      如果没有定义LEVEL的值,则缺省为DEBUG       <level value="ALL" />        按日期切分日志文件,并将日期作为日志文件的名字       <appender-ref ref="RollingFileAppenderNameByDate" />     </root>-->     </log4net> </configuration>

这个分类分等级了

log4net配置使用

 

 改为始终复制 运行项目进行日志使用 就会发现在项目文件夹下binDebugnet6.0发现log文件夹