一、类库配置
结构如下图
1、LogUtility类
public class LogUtility { private static readonly log4net.ILog log = log4net.LogManager.GetLogger( System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); public static void WriteInfo(string strInfo) { log.Info(strInfo); } public static void WriteDebugInfo(string strInfo) { log.Debug(strInfo); } public static void WriteDebugError(string desc,Exception ex) { log.Error(desc,ex); } }
2、Web端调用:上面的类库DLL引用过来、log4net引用另外要配置Global.asax和Log4Net.config
Global配置
protected void Application_Start(object sender, EventArgs e) { FileInfo file = new FileInfo(AppDomain.CurrentDomain.BaseDirectory + "Log4Net.config"); log4net.Config.XmlConfigurator.Configure(file); }
Log4Net.config配置
<?xml version="1.0" encoding="utf-8" ?> <log4net> <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender,log4net"> <!--日志文件路径,按文件大小方式输出时在这里指定文件名,并且前面的日志按天在文件名后自动添加当天日期形成文件--> <param name="File" value="Logs\"/> <!--是否追加到文件--> <param name="AppendToFile" value="true"/> <!--记录日志写入文件时,不锁定文本文件--> <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/> <!--Unicode编码--> <Encoding value="UTF-8"/> <!--最多产生的日志文件数,value="-1"为不限文件数--> <param name="MaxSizeRollBackups" value="10"/> <!--是否只写到一个文件中--> <param name="StaticLogFileName" value="false"/> <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])--> <param name="RollingStyle" value="Date"/> <!--按日期产生文件夹,文件名[在日期方式与混合方式下使用]--> <param name="DatePattern" value="yyyy-MM-dd/yyyyMMdd".log""/> <!--每个文件的大小。只在混合方式与文件大小方式下使用,超出大小的在文件名后自动增加1重新命名--> <param name="maximumFileSize" value="5000KB" /> <!--记录的格式。--> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] <%X{auth}>%n - %m%n"/> </layout> </appender> <appender name="ExceptionFileAppender" type="log4net.Appender.RollingFileAppender,log4net"> <!--日志文件路径,按文件大小方式输出时在这里指定文件名,并且前面的日志按天在文件名后自动添加当天日期形成文件--> <param name="File" value="Logs\"/> <!--是否追加到文件--> <param name="AppendToFile" value="true"/> <!--记录日志写入文件时,不锁定文本文件--> <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/> <!--Unicode编码--> <Encoding value="UTF-8"/> <!--最多产生的日志文件数,value="-1"为不限文件数--> <param name="MaxSizeRollBackups" value="10"/> <!--是否只写到一个文件中--> <param name="StaticLogFileName" value="false"/> <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])--> <param name="RollingStyle" value="Date"/> <!--按日期产生文件夹,文件名[在日期方式与混合方式下使用]--> <param name="DatePattern" value="yyyy-MM-dd/yyyyMMdd"-Exception.log""/> <!--每个文件的大小。只在混合方式与文件大小方式下使用,超出大小的在文件名后自动增加1重新命名--> <param name="maximumFileSize" value="5000KB" /> <!--记录的格式。--> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] <%X{auth}>%n - %m%n"/> </layout> </appender> <logger name="Exception"> <level value="ALL"/> <appender-ref ref="ExceptionFileAppender"/> </logger> <root> <!--根据日志的级别,来决定需要记录的日志,日志的级别主要有以下几类:ALL,DEBUG,INFO,WARN,RROR,FATAL,OFF--> <level value="ALL" /> <!-- <level value="WARN" /> --> <appender-ref ref="LogFileAppender" /> </root> </log4net>
Ok 大功告成
二、Web端配置log4net;和类库配置一样就少一个引用类库的DLL另外Web端无需LogUtility类直接调用log4net 写日志即可
结构图如下
Global.asax和Log4Net配置同方法一
调用方法
ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); /// <summary> /// 根据二维码编号获取公证书 /// </summary> /// <param name="qrCode">二维码编号</param> /// <returns>json</returns> [WebMethod] public string QueryEvidence(string qrCode) { try { log.Info("方法QueryEvidence开始\r\n二维码:" + qrCode); …………………………
} }