日志信息分类
1.等级由低到高:debug<info<warn<Error<Fatal;
2.区别:
debug 级别最低,可以随意的使用于任何觉得有利于在调试时更详细的了解系统运行状态;
info 重要,输出信息:用来反馈系统的当前状态给最终用户的;
后三个,警告、错误、严重错误,这三者应该都在系统运行时检测到了一个不正常的状态。
warn, 可修复,系统可继续运行下去;
Error, 可修复性,但无法确定系统会正常的工作下去;
Fatal, 相当严重,可以肯定这种错误已经无法修复,并且如果系统继续运行下去的话后果严重。
3.使用
什么时候使用 info, warn , error ?
info 用于打印程序应该出现的正常状态信息, 便于追踪定位;
warn 表明系统出现轻微的不合理但不影响运行和使用;
error 表明出现了系统错误和异常,无法正常完成目标操作。
LOG4NET的常用方式:
首选引用LOG4NET的命名空间:
using log4net;
然后使用配制输出日志路径:
private static ILog _log; private static ILog Log { get { string path = Config_WG.Instance.Log4NetConfigFilePath; //获取日志配制文件路径,我这里用的是Log4Net.config log4net.Config.XmlConfigurator.Configure(new FileInfo(path)); //定义日志配制文件路径
//log4net.Config.XmlConfigurator.Configure(); 如果直接这样写,则读取启动项目的config
if (_log == null) { _log = log4net.LogManager.GetLogger("Default"); } return _log; } }
配制好日志文件Log4Net.config:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> </configSections> <log4net> <root> <!-- 1. Fatal:Fatal 2. Error: Fatal+Error 3. Warn: Fatal+Error+Warn 4. Debug: Fatal+Error+Warn+Debug+Info 5. Info: Fatal+Error+Warn+Info 6. All: 所有都记 7. Off: 全都不记 --> <!--<level value="All"/>--> <!--文件形式记录日志--> <!--<appender-ref ref="RollingFileAppender" />--> </root> <!--定义输出到文件中--> <logger name="Default"> <level value="All"/> <appender-ref ref="RollingFileAppender" /> </logger> <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> <!--定义文件存放位置--> <file value="Logs"/> <appendToFile value="true"/> <rollingStyle value="Date"/> <datePattern value="yyyy\yyyyMMdd'.txt'"/> <staticLogFileName value="false"/> <param name="MaxSizeRollBackups" value="100"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%newline %n记录时间:%date %n线程ID:[%thread] %n日志级别: %-5level %n出错类:%logger property: [%property{NDC}] - %n错误描述:%message%newline %n"/> </layout> </appender> </log4net> </configuration>
现在可以使用日志方法了:
Log.Info("xxxxx"); Log.Debug("xxxxx"); Log.Warn("xxxxxx"); Log.Error("xxxxxx"); Log.Fatal("xxxxxx"); Log.Info("xxxxx",ex); Log.Debug("xxxxx",ex); Log.Warn("xxxxxx",ex); Log.Error("xxxxxx",ex); Log.Fatal("xxxxxx",ex);