C# 日志系统 log4net 配置及使用

时间:2022-01-04 14:50:30

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();
}
}