标签:space 摘要 manage 混合 ado 存储 eve etc 消息
1.配置文件
app.config
<?xml version="1.0" encoding="utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" /> </startup> <appSettings> <!--log4net日志配置路径--> <add key="log4net" value="log4net.config"/> <!--日志是否开启 0不开启 1开启--> <add key="IsWriteLog" value="1"/> </appSettings> </configuration>
log4net.config
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> </configSections> <log4net> <logger name="logerror"> <level value="ERROR" /> <appender-ref ref="ErrorAppender" /> </logger> <logger name="loginfo"> <level value="INFO" /> <appender-ref ref="InfoAppender" /> </logger> <logger name="logdebug"> <level value="DUBUG"></level> <appender-ref ref="DebugAppender" /> </logger> <logger name="logfatal"> <level value="Fatal"></level> <appender-ref ref="FatalAppender" /> </logger> <logger name="logwarn"> <level value="WARN"></level> <appender-ref ref="WarnAppender" /> </logger> <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender"> <!--设置日志存储路径--> <param name="File" value="Data//WebLog//LogError//" /> <!--是否追加到文件--> <param name="AppendToFile" value="true" /> <!--最多产生的日志文件数,超过则只保留最新的n个。设定值value="-1"为不限文件数--> <param name="MaxSizeRollBackups" value="100" /> <param name="MaxFileSize" value="1024" /> <!--是否只写到一个文件中--> <param name="StaticLogFileName" value="false" /> <!--这是按日期产生文件夹,并在文件名前也加上日期--> <param name="DatePattern" value="yyyyMM/dd".log"" /> <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])--> <param name="RollingStyle" value="Date" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%n异常时间:%d [%t] %n异常级别:%-5p %n异常位置:[%thread] (%file:%line) %n消息描述:%message%n异常:%exception%n%n " /> </layout> </appender> <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender"> <!--设置日志存储路径--> <param name="File" value="Data//WebLog//LogInfo//" /> <!--是否追加到文件--> <param name="AppendToFile" value="true" /> <!--最多产生的日志文件数,超过则只保留最新的n个。设定值value="-1"为不限文件数--> <param name="MaxSizeRollBackups" value="100" /> <param name="MaxFileSize" value="1024" /> <!--是否只写到一个文件中--> <param name="StaticLogFileName" value="false" /> <!--这是按日期产生文件夹,并在文件名前也加上日期--> <param name="DatePattern" value="yyyyMM/dd".log"" /> <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])--> <param name="RollingStyle" value="Date" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%n日志时间:%d [%t] %n日志级别:%-5p %n消息描述:%c [%x] %n%m %n " /> </layout> </appender> <appender name="DebugAppender" type="log4net.Appender.RollingFileAppender"> <!--设置日志存储路径--> <param name="File" value="Data//WebLog//LogDebug//" /> <!--是否追加到文件--> <param name="AppendToFile" value="true" /> <!--最多产生的日志文件数,超过则只保留最新的n个。设定值value="-1"为不限文件数--> <param name="MaxSizeRollBackups" value="100" /> <param name="MaxFileSize" value="1024" /> <!--是否只写到一个文件中--> <param name="StaticLogFileName" value="false" /> <!--这是按日期产生文件夹,并在文件名前也加上日期--> <param name="DatePattern" value="yyyyMM/dd".log"" /> <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])--> <param name="RollingStyle" value="Date" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%n异常时间:%d [%t] %n异常级别:%-5p %n异常位置:[%thread] (%file:%line) %n消息描述:%message%n异常:%exception%n%n " /> </layout> </appender> <appender name="FatalAppender" type="log4net.Appender.RollingFileAppender"> <!--设置日志存储路径--> <param name="File" value="Data//WebLog//LogFatal//" /> <!--是否追加到文件--> <param name="AppendToFile" value="true" /> <!--最多产生的日志文件数,超过则只保留最新的n个。设定值value="-1"为不限文件数--> <param name="MaxSizeRollBackups" value="100" /> <param name="MaxFileSize" value="1024" /> <!--是否只写到一个文件中--> <param name="StaticLogFileName" value="false" /> <!--这是按日期产生文件夹,并在文件名前也加上日期--> <param name="DatePattern" value="yyyyMM/dd".log"" /> <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])--> <param name="RollingStyle" value="Date" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%n异常时间:%d [%t] %n异常级别:%-5p %n异常位置:[%thread] (%file:%line) %n消息描述:%message%n异常:%exception%n%n " /> </layout> </appender> <appender name="WarnAppender" type="log4net.Appender.RollingFileAppender"> <!--设置日志存储路径--> <param name="File" value="Data//WebLog//LogWarn//" /> <!--是否追加到文件--> <param name="AppendToFile" value="true" /> <!--最多产生的日志文件数,超过则只保留最新的n个。设定值value="-1"为不限文件数--> <param name="MaxSizeRollBackups" value="100" /> <param name="MaxFileSize" value="1024" /> <!--是否只写到一个文件中--> <param name="StaticLogFileName" value="false" /> <!--这是按日期产生文件夹,并在文件名前也加上日期--> <param name="DatePattern" value="yyyyMM/dd".log"" /> <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])--> <param name="RollingStyle" value="Date" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%n异常时间:%d [%t] %n异常级别:%-5p %n异常位置:[%thread] (%file:%line) %n消息描述:%message%n异常:%exception%n%n " /> </layout> </appender> </log4net> </configuration>
2.Helper调用类
using System; using log4net; namespace LogService { /// <summary> /// LogHelper的摘要说明。 /// </summary> public class LogHelper { /// <summary> /// 静态只读实体对象info信息 /// </summary> public static readonly ILog Loginfo = LogManager.GetLogger("loginfo"); /// <summary> /// 静态只读实体对象error信息 /// </summary> public static readonly ILog Logerror = LogManager.GetLogger("logerror"); /// <summary> /// 静态只读实体对象debug信息 /// </summary> public static readonly ILog LogDebug = LogManager.GetLogger("logdebug"); /// <summary> /// 静态只读实体对象fatal信息 /// </summary> public static readonly ILog LogFatal = LogManager.GetLogger("logfatal"); /// <summary> /// 静态只读实体对象warn信息 /// </summary> public static readonly ILog LogWarn = LogManager.GetLogger("logwarn"); /// <summary> /// 添加info信息 /// </summary> /// <param name="info">自定义日志内容说明</param> public static void WriteInfo(object info) { try { if (Loginfo.IsInfoEnabled) { Loginfo.Info(info); } } catch { } } /// <summary> /// 添加异常信息 /// </summary> /// <param name="info">自定义日志内容说明</param> /// <param name="ex">异常信息</param> public static void WriteError(string info, Exception ex) { try { if (Logerror.IsDebugEnabled) { Logerror.Error(info, ex); } } catch { } } /// <summary> /// 添加Debug信息 /// </summary> /// <param name="info">自定义日志内容说明</param> /// <param name="ex">异常信息</param> public static void WriteDebug(string info, Exception ex) { try { if (LogDebug.IsDebugEnabled) { LogDebug.Debug(info, ex); } } catch { } } /// <summary> /// 添加fatal信息 /// </summary> /// <param name="fatal">自定义日志内容说明</param> public static void WriteFatal(object fatal) { try { if (LogFatal.IsFatalEnabled) { LogFatal.Fatal(fatal); } } catch { } } /// <summary> /// 添加warn信息 /// </summary> /// <param name="warn">自定义日志内容说明</param> public static void WriteWarn(object warn) { try { if (LogWarn.IsWarnEnabled) { LogWarn.Warn(warn); } } catch { } } } }
3.测试代码
using System; using System.Configuration; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using log4net.Config; namespace LogService { class Program { static void Main(string[] args) { //初始化日志文件 string state = ConfigurationManager.AppSettings["IsWriteLog"]; //判断是否开启日志记录 if (state == "1") { var path = AppDomain.CurrentDomain.SetupInformation.ApplicationBase + ConfigurationManager.AppSettings["log4net"]; var fi = new FileInfo(path); XmlConfigurator.Configure(fi); } try { var x = 0; var q = 1 / x; } catch (Exception e) { LogHelper.WriteError("xx", e); LogHelper.WriteDebug("xx", e); } LogHelper.WriteInfo("info"); LogHelper.WriteFatal("fatal"); LogHelper.WriteWarn("warn"); Console.WriteLine(); Console.ReadLine(); } } }
github地址:https://github.com/842549829/log4net
标签:space 摘要 manage 混合 ado 存储 eve etc 消息
原文地址:https://www.cnblogs.com/liuxiaoji/p/9288148.html