【Log4Net】Log4Net日志记录插件使用

 

用来记录日志,输出到文件,数据库等

 

下载

直接在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="&quot;Logs_&quot;yyyyMMdd&quot;.txt&quot;" />
    <!--非静态文件,每天创建文件-->
    <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="&#13;&#10;----------------------header--------------------------&#13;&#10;" />
      <param name="Footer" value="&#13;&#10;----------------------footer--------------------------&#13;&#10;" />
    </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();
}

回顾:MVC 日志模块 使用观察者

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

生成日志文件

 

 

相关推荐
©️2020 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页