1,建立.Net Core Web 项目,引入 log4net
2,建立类库,添加如下 helper方法


1 using log4net; 2 using log4net.Config; 3 using System; 4 using System.IO; 5 6 namespace Chf.Log 7 { 8 ///9 /// Log4Net Helper 2018-12-16 19:15:00 10 /// 日志等级:OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL 11 /// 12 public sealed class LogHelper 13 { 14 private static ILog logger; 15 16 static LogHelper() 17 { 18 if (logger == null) 19 { 20 var repository = LogManager.CreateRepository("Chf.Web"); 21 //指定配置文件 22 XmlConfigurator.Configure(repository, new FileInfo("Config//log4netTwo.config")); 23 logger = LogManager.GetLogger(repository.Name, "RollingLogFileAppender"); 24 } 25 } 26 27 /// 28 /// 调试信息 29 /// 30 /// 31 /// 32 public static void Debug(string message, Exception exception = null) 33 { 34 if (logger.IsDebugEnabled) 35 { 36 if (exception == null) 37 logger.Debug(message); 38 else 39 logger.Debug(FormartLog(message, exception)); 40 } 41 } 42 43 /// 44 /// 一般信息 45 /// 46 /// 47 /// 48 public static void Info(string message, Exception exception = null) 49 { 50 if (logger.IsInfoEnabled) 51 { 52 if (exception == null) 53 logger.Info(message); 54 else 55 logger.Info(FormartLog(message, exception)); 56 } 57 } 58 59 /// 60 /// 警告 61 /// 62 /// 63 /// 64 public static void Warn(string message, Exception exception = null) 65 { 66 if (logger.IsWarnEnabled) 67 { 68 if (exception == null) 69 logger.Warn(message); 70 else 71 logger.Warn(FormartLog(message, exception)); 72 } 73 } 74 75 /// 76 /// 一般错误 77 /// 78 /// 79 /// 80 public static void Error(string message, Exception exception = null) 81 { 82 if (logger.IsErrorEnabled) 83 { 84 if (exception == null) 85 logger.Error(message); 86 else 87 logger.Error(FormartLog(message, exception)); 88 } 89 } 90 91 /// 92 /// 致命错误 93 /// 94 /// 95 /// 96 public static void Fatal(string message, Exception exception = null) 97 { 98 if (logger.IsFatalEnabled) 99 { 100 if (exception == null) 101 logger.Fatal(message); 102 else 103 logger.Fatal(FormartLog(message, exception)); 104 } 105 } 106 107 108 /// 109 /// 自定义返回格式 110 /// 111 /// 112 /// 113 /// 114 private static string FormartLog(string throwMsg, Exception ex) 115 { 116 return string.Format("【自定义内容】:{0} \r\n【异常类型】:{1} \r\n【异常信息】:{2} \r\n【堆栈调用】:{3}", new object[] { throwMsg, ex.GetType().Name, ex.Message, ex.StackTrace }); 117 } 118 } 119 }
3,Web项目,添加如下配置文件


1 xml version="1.0" encoding="utf-8"?> 2 <configuration> 3 <configSections> 4 <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> 5 configSections> 6 7 <log4net> 8 9 <appender name="RollingFileDebug" type="log4net.Appender.RollingFileAppender"> 10 11 <file value="Log\\Debug\\" /> 12 13 <appendToFile value="true" /> 14 <param name="MaxFileSize" value="10240"/> 15 <param name="MaxSizeRollBackups" value="100"/> 16 17 <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 18 19 <rollingStyle value="Date" /> 20 21 <datePattern value="yyyy-MM-dd_HH_mm_ss".log"" /> 22 23 <staticLogFileName value="false" /> 24 <layout type="log4net.Layout.PatternLayout"> 25 <conversionPattern value="【异常时间】:%date【线程ID】:%thread%newline【异常级别】:%5level%newline%message%newline--------------------------------------------------------------------%newline" /> 26 layout> 27 <filter type="log4net.Filter.LevelRangeFilter"> 28 <param name="LevelMin" value="Debug" /> 29 <param name="LevelMax" value="Debug" /> 30 filter> 31 appender> 32 33 34 <appender name="RollingFileInfo" type="log4net.Appender.RollingFileAppender"> 35 36 <file value="Log\\Info\\" /> 37 38 <appendToFile value="true" /> 39 <param name="MaxFileSize" value="10240"/> 40 <param name="MaxSizeRollBackups" value="100"/> 41 42 <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 43 44 <rollingStyle value="Date" /> 45 46 <datePattern value="yyyy-MM-dd_HH_mm_ss".log"" /> 47 48 <staticLogFileName value="false" /> 49 <layout type="log4net.Layout.PatternLayout"> 50 <conversionPattern value="【异常时间】:%date【线程ID】:%thread%newline【异常级别】:%5level%newline%message%newline--------------------------------------------------------------------%newline" /> 51 layout> 52 <filter type="log4net.Filter.LevelRangeFilter"> 53 <param name="LevelMin" value="Info" /> 54 <param name="LevelMax" value="Info" /> 55 filter> 56 appender> 57 58 59 <appender name="RollingFileWarn" type="log4net.Appender.RollingFileAppender"> 60 61 <file value="Log\\Warn\\" /> 62 63 <appendToFile value="true" /> 64 <param name="MaxFileSize" value="10240"/> 65 <param name="MaxSizeRollBackups" value="100"/> 66 67 <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 68 69 <rollingStyle value="Date" /> 70 71 <datePattern value="yyyy-MM-dd_HH_mm_ss".log"" /> 72 73 <staticLogFileName value="false" /> 74 <layout type="log4net.Layout.PatternLayout"> 75 <conversionPattern value="【异常时间】:%date【线程ID】:%thread%newline【异常级别】:%5level%newline%message%newline--------------------------------------------------------------------%newline" /> 76 layout> 77 <filter type="log4net.Filter.LevelRangeFilter"> 78 <param name="LevelMin" value="Warn" /> 79 <param name="LevelMax" value="Warn" /> 80 filter> 81 appender> 82 83 84 <appender name="RollingFileError" type="log4net.Appender.RollingFileAppender"> 85 86 <file value="Log\\Error\\" /> 87 88 <appendToFile value="true" /> 89 <param name="MaxFileSize" value="10240"/> 90 <param name="MaxSizeRollBackups" value="100"/> 91 92 <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 93 94 <rollingStyle value="Date" /> 95 96 <datePattern value="yyyy-MM-dd_HH_mm_ss".log"" /> 97 98 <staticLogFileName value="false" /> 99 <layout type="log4net.Layout.PatternLayout"> 100 <conversionPattern value="【异常时间】:%date【线程ID】:%thread%newline【异常级别】:%5level%newline%message%newline--------------------------------------------------------------------%newline" /> 101 layout> 102 <filter type="log4net.Filter.LevelRangeFilter"> 103 <param name="LevelMin" value="Error" /> 104 <param name="LevelMax" value="Error" /> 105 filter> 106 appender> 107 108 109 <appender name="RollingFileFatal" type="log4net.Appender.RollingFileAppender"> 110 111 <file value="Log\\Fatal\\" /> 112 113 <appendToFile value="true" /> 114 <param name="MaxFileSize" value="10240"/> 115 <param name="MaxSizeRollBackups" value="100"/> 116 117 <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 118 119 <rollingStyle value="Date" /> 120 121 <datePattern value="yyyy-MM-dd_HH_mm_ss".log"" /> 122 123 <staticLogFileName value="false" /> 124 <layout type="log4net.Layout.PatternLayout"> 125 <conversionPattern value="【异常时间】:%date【线程ID】:%thread%newline【异常级别】:%5level%newline%message%newline--------------------------------------------------------------------%newline" /> 126 layout> 127 <filter type="log4net.Filter.LevelRangeFilter"> 128 <param name="LevelMin" value="Fatal" /> 129 <param name="LevelMax" value="Fatal" /> 130 filter> 131 appender> 132 133 <logger name="RollingLogFileAppender"> 134 <level value="ALL" /> 135 <appender-ref ref="RollingFileDebug" /> 136 <appender-ref ref="RollingFileInfo" /> 137 <appender-ref ref="RollingFileWarn" /> 138 <appender-ref ref="RollingFileError" /> 139 <appender-ref ref="RollingFileFatal" /> 140 logger> 141 142 150 log4net> 151 configuration>
4,运行项目,测试 除以0 和 直接写;就会看到如下