欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#Log4net记录日志

程序员文章站 2022-07-01 22:39:59
1、下载log4net地址:http://logging.apache.org/log4net/download_log4net.cgi 下载log4net-2.0.8-bin-oldkey.zip到本地,根据自己的需求选择一个合适的log4net.dll版本即可。 2、log4net.dll放在 ......

1、下载log4net地址:http://logging.apache.org/log4net/download_log4net.cgi

下载到本地,根据自己的需求选择一个合适的log4net.dll版本即可。

2、log4net.dll放在 \bin\release或者 \bin\debug下。

3、解决方案下的引用中去引用该dll。

4、添加一个app.config,可网上查询添加的节点。这里添加一个我自己可以用的。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <startup> 
        <supportedruntime version="v4.0" sku=".netframework,version=v4.0"/>
    </startup>
  <configsections>
    <section name="log4net" type="log4net.config.log4netconfigurationsectionhandler, log4net"/>
  </configsections>
  <!--日志-->
  <log4net>
    <logger name="logerror">
      <level value="all"/>
      <appender-ref ref="log_error"/>
    </logger>
    <logger name="loginfo">
      <level value="debug"/>
      <appender-ref ref="log_info"/>
    </logger>
    <!--<logger name="logconsole">
      <level value="info" />
      <appender-ref ref="consoleappender" />
    </logger>-->
    <!--信息日志-->
    <appender name="log_error" type="log4net.appender.rollingfileappender">
      <!--定义日志存放位置-->
      <param name="file" value="e:\logs\error.log"/>
      <param name="datepattern" value="yyyymmdd"/>
      <param name="appendtofile" value="true"/>
      <param name="maxsizerollbackups" value="100"/>
      <param name="maximumfilesize" value="1mb"/>
      <param name="rollingstyle" value="size"/>
      <param name="staticlogfilename" value="true"/>
      <layout type="log4net.layout.patternlayout">
        <!--输出格式-->
        <param name="conversionpattern" value="%-5level %date %file %type %method() %line %message %n"/>
      </layout>
    </appender>
    <appender name="log_info" type="log4net.appender.rollingfileappender">
      <param name="file" value="e:\logs\info.log"/>
      <param name="datepattern" value="yyyymmdd"/>
      <param name="appendtofile" value="true"/>
      <param name="maxsizerollbackups" value="100"/>
      <param name="maximumfilesize" value="1mb"/>
      <param name="rollingstyle" value="size"/>
      <param name="staticlogfilename" value="true"/>
      <layout type="log4net.layout.patternlayout">
        <param name="conversionpattern" value="%-5level %d [%c] %m%n"/>
      </layout>
      <filter type="log4net.filter.levelrangefilter">
        <param name="levelmin" value="info"/>
        <param name="levelmax" value="error"/>
      </filter>
    </appender>
  </log4net>
</configuration>

5、assemblyinfo.cs中最后一句添加[assembly: log4net.config.xmlconfigurator(configfileextension = "config", watch = true)],否则的话不能写入日志。

6、winform中可以单独建一个类用于存放log4net的实例化。

当然了需要注意的是log4net.logmanager.getlogger("logerror和loginfo")中的“msglogger”要与app.config中相对应。

 1 using system;
 2 using system.collections.generic;
 3 using system.linq;
 4 using system.text;
 5 using system.threading.tasks;
 6 
 7 namespace demo
 8 {
 9     class loghelper
10     {
11         public static log4net.ilog logerror = log4net.logmanager.getlogger("logerror");
12         public static log4net.ilog loginfo = log4net.logmanager.getlogger("loginfo");
13     }
14     
15 }

7、测试一下

using system;
using system.collections.generic;
using system.componentmodel;
using system.data;
using system.drawing;
using system.linq;
using system.text;
using system.threading.tasks;
using system.windows.forms;

namespace demo
{
    public partial class form1 : form
    {
        
        public form1()
        {
            initializecomponent();
            loghelper.loginfo.info("ssss");
            loghelper.logerror.info("look look error log.");

        }
    }
}

8、大功告成

C#Log4net记录日志