1.程序中应用添加 log4的程序集,可通过nuget添加
2.添加log4.Net.config 文件
并修改配置如下:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> </configSections> <log4net debug="true"> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <file value="ADSLog.log" /> <!--file可以指定具体的路径 eg : d:\\test.log。不指定的话log被生成在项目的bin/Debug 或者 bin/Release目录下 (web的项目 默认生成在根目录下)--> <appendToFile value="true" /> <rollingStyle value="Size" /> <maxSizeRollBackups value="10" /> <!--备份log文件的个数最多10个--> <maximumFileSize value="2MB" /> <!--每个log文件最大是2M,如果超过2M将重新创建一个新的log文件,并将原来的log文件备份。--> <staticLogFileName value="true" /> <layout type="log4net.Layout.PatternLayout"> <!--指定log的格式--> <conversionPattern value="[%date] %thread -- %-5level -- %logger [%M] -- %message%newline" /> </layout> </appender> <root> <level value="DEBUG" /> <!--指定将此级别及以上的log打印到log文件中--> <appender-ref ref="RollingLogFileAppender" /> </root> </log4net> </configuration>
3.logHelper的添加
代码如下:
using System; using System.IO; using System.Linq; using System.Text; using log4net; [assembly: log4net.Config.XmlConfigurator(ConfigFile = @"log4net.config", Watch = true)] namespace AUDS2000.Common { public static class LogHelper { private static log4net.ILog logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); public static void Info(Exception ex) { logger.Info(ex.GetExMsg()); } public static void Info(string info, Exception ex = null) { if (ex == null) logger.Info(info); else logger.Info(info, ex); } public static void Debug(Exception ex) { logger.Debug(ex.GetExMsg()); } public static void Debug(string info, Exception ex = null) { if (ex == null) logger.Debug(info); else logger.Debug(info, ex); } public static void Error(Exception ex) { logger.Error(ex.GetExMsg()); } public static void Error(string info, Exception ex = null) { if (ex == null) logger.Error(info); else logger.Error(info, ex); } #region Exception扩展 public static string GetExMsg(this Exception ex) { if (ex == null) return string.Empty; var res = string.Empty; if (!string.IsNullOrEmpty(ex.StackTrace)) res = ex.StackTrace + ","; if (ex.InnerException != null && !string.IsNullOrEmpty(ex.InnerException.Message)) res += ex.InnerException.Message; else res += ex.Message; return res; } #endregion } }
注意:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = @"log4net.config", Watch = true)]
这个可以不用写,但是需要到全局的assembly文件中添加,两者保留一个即可。可以直接通过helper直接记录日志。