标签:运行时 exce rect blog deb etl ogg manager combine
一、log4net介绍
log4net是一个第三方日志框架,有三个主要组件:loggers,appenders和layouts。这3个组件一起工作使得开发者能够根据信息类型和等级(Lever)记录信息,以及在运行时控制信息的格式化和信息的写入位置(如控制台,文件,内存,数据库等)。
Appender:可以将日志输出到不同地方,不同的输出目标对应不同的Appender,如RollingFileAppender(滚动文件),AdoNetAppender(数据库),SmtpAppender(邮件),ConsoleAppender(控制台)等。
level(级别):标识这条日志的重要级别。None>Fatal>ERROR>WARN>DEBUG>INFO>ALL,设定一个Level,那么低于这个Leveld 日志是不会被写入到Appender中的。
log4net还可以设定多个Appender,可以实现同时将日志记录到文件、数据库、发邮件等。可以设定不同Appender的不同level,例如:实现普通级别记录到文件,Error以上级别都记录到数据库。还可以自定义Appender,自己实现将Error发短信等。
二、创建log4net Demo
1.创建控制台应用程序Log4netDemo
2.右键Log4netDemo项目,选择“管理NuGet程序包”,搜索“log4net”,添加log4net程序包
3.添加配置文件log4net.config,配置文件内容如下:
<?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> </configSections> <log4net> <root> <!-- Set root logger level to ERROR and its appenders --> <!-- OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL --> <level value="DEBUG"/> <appender-ref ref="RollingAppender"/> <appender-ref ref="ConsoleAppender"/> </root> <!--指定日志记录的方式:以滚动文件的方式--> <appender name="RollingAppender" type="log4net.Appender.RollingFileAppender,log4net" > <!--指定日志存放的路径--> <file value="D:\logs\" /> <!--日志以追加的形式记录--> <appendToFile value="true" /> <rollingStyle value="Date" /> <!--设置日志文件名称的生成规则--> <datePattern value=""Logs_"yyyyMMdd".txt"" /> <!--多线程时采用最小锁定--> <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/> <!--日志名称是否静态:否--> <staticLogFileName value="false" /> <!--日志内容格式和布局设置--> <layout type="log4net.Layout.PatternLayout,log4net"> <conversionPattern value="%d [%t] %-5p %c - %m%n" /> <header value="----------------------header-------------------------" /> <footer value="----------------------footer--------------------------" /> </layout> </appender> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender,log4net"> <layout type="log4net.Layout.PatternLayout,log4net"> <conversionPattern value="%d [%t] %-5p %c - %m%n" /> </layout> </appender> </log4net> </configuration>
配置文件中设置了两个Appender:RollingFileAppender和ConsoleAppender,将日志文件同时输出到文件和控制台
4.添加封装类Logger,代码如下:
public class Logger { static Logger() { XmlConfigurator.Configure(new FileInfo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "log4net.config"))); ILog Log = LogManager.GetLogger(typeof(Logger)); } private ILog loger = null; public Logger(Type type) { loger = LogManager.GetLogger(type); } /// <summary> /// Log4日志 /// </summary> /// <param name="msg"></param> /// <param name="ex"></param> public void Error(string msg = "出现异常", Exception ex = null) { loger.Error(msg, ex); } /// <summary> /// Log4日志 /// </summary> /// <param name="msg"></param> public void Warn(string msg) { loger.Warn(msg); } /// <summary> /// Log4日志 /// </summary> /// <param name="msg"></param> public void Info(string msg) { loger.Info(msg); } /// <summary> /// Log4日志 /// </summary> /// <param name="msg"></param> public void Debug(string msg) { loger.Debug(msg); } }
5.测试如下:
class Program { private static Logger logger = new Logger(typeof(Program)); static void Main(string[] args) { try { int x = 1, y = 0; int result = x / y; } catch (Exception ex) { logger.Error("程序发生异常", ex); } Console.ReadKey(); } }
标签:运行时 exce rect blog deb etl ogg manager combine
原文地址:http://www.cnblogs.com/marshhu/p/6816148.html