C# 日志系统 log4net 配置及使用
1、引用Dll
版本是:1.2.10.0,下载Dll
2、Web.config文件配置
<?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/> </configSections> <!--log4net配置--> <log4net> <root> <!--控制级别,由低到高: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF 比如定义级别为INFO,则INFO级别向下的级别,比如DEBUG日志将不会被记录 如果没有定义LEVEL的值,则缺省为DEBUG--> <level value="ERROR"/> <appender-ref ref="RollingFileAppender"/> </root> <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> <!--日志文件地址及名称(名称为日期,保证一天一个文件)--> <param name="File" type="log4net.Util.PatternString" value="logs\%date{yyyyMMdd}.log.txt" /> <!--多线程时采用最小锁定--> <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/> <!--是否追加到文件,默认为true,通常无需设置--> <appendToFile value="true"/> <!--这种情况下MaxSizeRollBackups和maximumFileSize的节点设置才有意义--> <RollingStyle value="Size"/> <!--每天记录的日志文件个数,与maximumFileSize配合使用--> <MaxSizeRollBackups value="10"/> <!--每个日志文件的最大大小,可用的单位:KB|MB|GB,不要使用小数,否则会一直写入当前日志--> <maximumFileSize value="1MB"/> <!--日志格式--> <layout type="log4net.Layout.PatternLayout"> <Header value=" ----------------------header-------------------------- " /> <!--conversionPattern: %m(message):输出的日志消息; %n(newline):换行; %d(datetime):输出当前语句运行的时刻; %r(runtime):输出程序从运行到执行到当前语句时消耗的毫秒数; %t(threadid):当前语句所在的线程ID ; %p(priority): 日志的当前日志级别; %c(class):当前日志对象的名称; %L:输出语句所在的行号; %F:输出语句所在的文件名; %-10:表示最小长度为10,如果不够,则用空格填充;--> <conversionPattern value="%d [%t] %-5p %c [%x] - %m%n"/> </layout> </appender> </log4net> </configuration>
3、Global.asax中Application_Start设置
//注册log4net(读取Log4Net配置信息) log4net.Config.XmlConfigurator.Configure();
4、调用
public class HomeController : BaseController { private log4net.ILog logger = log4net.LogManager.GetLogger(typeof(HomeController)); /// <summary> /// 网站主页 /// </summary> /// <returns></returns> public ActionResult Index() { //日志 logger.Error("测试错误!" ); return View(); } }