用来记录日志,输出到文件,数据库等
下载
直接在NuGet搜索log4net下载即可
配置文件
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="test.txt"/>
<appendToFile value="true"/>
<!--最多10个日志备份文件-->
<maxSizeRollBackups value ="10"/>
<!--每个文件最大1M-->
<maximumFileSize value ="1024kb"/>
<!--回滚的格式按照大小-->
<rollingStyle value="Size"/>
<staticLogFileName value="true"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
<root>
<!--低于该级别的不会写入-->
<level value="DEBUG"/>
<appender-ref ref="RollingLogFileAppender"/>
</root>
</log4net>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
日志级别 : OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL
FATAL 致命错误
ERROR 一般错误
WARN 警告
INFO 一般信息
DEBUG 调试信息
使用
//从配置文件读取log4net的配置进行初始化
log4net.Config.XmlConfigurator.Configure();
ILog logWriter = LogManager.GetLogger("DemoWrite");
logWriter.Debug("Debug");
logWriter.Error("Error");
日志
与MVC结合
在Web.config中的configSections节点中添加
<!--log4net块配置-->
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
在configSections外面添加
<!--Log4Net的配置节点 -->
<log4net>
<!-- OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL -->
<!-- Set root logger level to ERROR and its appenders -->
<root>
<level value="ERROR"/>
<appender-ref ref="SysAppender"/>
</root>
<!-- Print only messages of level DEBUG or above in the packages -->
<logger name="WebLogger">
<level value="ERROR"/>
</logger>
<appender name="SysAppender" type="log4net.Appender.RollingFileAppender,log4net" >
<!--日志放在App_Data文件夹-->
<param name="File" value="App_Data/" />
<param name="AppendToFile" value="true" />
<!--日志文件根据日期回滚-->
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value=""Logs_"yyyyMMdd".txt"" />
<!--非静态文件,每天创建文件-->
<param name="StaticLogFileName" value="false" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
<param name="Header" value=" ----------------------header-------------------------- " />
<param name="Footer" value=" ----------------------footer-------------------------- " />
</layout>
</appender>
<appender name="consoleApp" type="log4net.Appender.ConsoleAppender,log4net">
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
</layout>
</appender>
</log4net>
在Global.axax文件中添加初始化
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
//从配置文件读取log4net的配置进行初始化
log4net.Config.XmlConfigurator.Configure();
}
添加Log4Net日志记录
public class Log4NetWriter : ILogWriter
{
public void WriteLogInfo(string text)
{
ILog logWriter = LogManager.GetLogger("DemoWrite");
logWriter.Error(text);
}
}
在LogHelper的构造函数添加
LogWriteList.Add(new Log4NetWriter());
在Index视图中抛出异常测试
public ActionResult Index()
{
throw new Exception("hahaha");
return View();
}
生成日志文件