.Net使用log4net

1.使用Nuget下载log4net

2.、新建Config文件夹,将log4net配置文件放入此文件夹中(当修改web.config的时候会重启网站,所以把log4net单独出来比较好,也好管理),log4net配置:

<?xml version="1.0" encoding="utf-8" ?>
<log4net>
  <appender name="fatalAppender" type="log4net.Appender.RollingFileAppender">
    <filter type="log4net.Filter.LevelMatchFilter">
      <levelToMatch value="FATAL" />
    </filter>
    <filter type="log4net.Filter.DenyAllFilter" />
    <File value="Logs\fatal.log" />
    <appendToFile value="true" />
    <rollingStyle value="Date" />
    <datePattern value="yyyyMMdd" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
    </layout>
  </appender>
  <appender name="errorAppender" type="log4net.Appender.RollingFileAppender">
    <filter type="log4net.Filter.LevelMatchFilter">
      <levelToMatch value="ERROR" />
    </filter>
    <filter type="log4net.Filter.DenyAllFilter" />
    <File value="Logs\err.log" />
    <appendToFile value="true" />
    <rollingStyle value="Date" />
    <datePattern value="yyyyMMdd" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
    </layout>
  </appender>
  <appender name="warnAppender" type="log4net.Appender.RollingFileAppender">
    <filter type="log4net.Filter.LevelMatchFilter">
      <levelToMatch value="WARN" />
    </filter>
    <filter type="log4net.Filter.DenyAllFilter" />
    <File value="Logs\warn.log" />
    <appendToFile value="true" />
    <rollingStyle value="Date" />
    <datePattern value="yyyyMMdd" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
    </layout>
  </appender>
  <appender name="infoAppender" type="log4net.Appender.RollingFileAppender">
    <filter type="log4net.Filter.LevelMatchFilter">
      <levelToMatch value="INFO" />
    </filter>
    <filter type="log4net.Filter.DenyAllFilter" />
    <File value="Logs\info.log" />
    <appendToFile value="true" />
    <rollingStyle value="Date" />
    <datePattern value="yyyyMMdd" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
    </layout>
  </appender>
  <appender name="debugAppender" type="log4net.Appender.RollingFileAppender">
    <filter type="log4net.Filter.LevelMatchFilter">
      <levelToMatch value="DEBUG" />
    </filter>
    <filter type="log4net.Filter.DenyAllFilter" />
    <File value="Logs\debug.log" />
    <appendToFile value="true" />
    <rollingStyle value="Date" />
    <datePattern value="yyyyMMdd" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
    </layout>
  </appender>
  <appender name="perfAppender" type="log4net.Appender.RollingFileAppender">
    <filter type="log4net.Filter.LevelMatchFilter">
      <levelToMatch value="INFO" />
    </filter>
    <filter type="log4net.Filter.DenyAllFilter" />
    <File value="Logs\perf.log" />
    <appendToFile value="true" />
    <rollingStyle value="Date" />
    <datePattern value="yyyyMMdd" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date %logger - %message%newline" />
    </layout>
  </appender>
  <root>
    <level value="ALL" />
    <appender-ref ref="fatalAppender" />
    <appender-ref ref="errorAppender" />
    <appender-ref ref="warnAppender" />
    <appender-ref ref="infoAppender" />
    <appender-ref ref="debugAppender" />
  </root>

</log4net>

-----------------------------------------------------------------------------------------------------------------------------

3.右键点击第2步骤的log4net文件属性,改成如图所示

4.

在Properties下的AssemblyInfo.cs文件中加入

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Config/log4net.config", Watch = true)]

log4帮助类方便使用,代码:

public static class Log4Helper
    {
        public static void Fatal(Type type, object message, Exception exception = null)
        {
            ILog log = LogManager.GetLogger(type);
            if (exception == null)
                log.Fatal(message);
            else
                log.Fatal(message, exception);
        }


        public static void Error(Type type, object message, Exception exception = null)
        {
            ILog log = LogManager.GetLogger(type);
            if (exception == null)
                log.Error(message);
            else
                log.Error(message, exception);
        }


        public static void Warn(Type type, object message, Exception exception = null)
        {
            ILog log = LogManager.GetLogger(type);
            if (exception == null)
                log.Warn(message);
            else
                log.Warn(message, exception);
        }


        public static void Info(Type type, object message, Exception exception = null)
        {
            ILog log = LogManager.GetLogger(type);
            if (exception == null)
                log.Info(message);
            else
                log.Info(message, exception);
        }


        public static void Debug(Type type, object message, Exception exception = null)
        {
            ILog log = LogManager.GetLogger(type);
            if (exception == null)
                log.Debug(message);
            else
                log.Debug(message, exception);
        }

    }

------------------------------------------------------------------------------------------------------

5、调用:

Log4Helper.Fatal(this.GetType(), "Fatal");
Log4Helper.Error(this.GetType(), "Error", new Exception("error"));
Log4Helper.Warn(this.GetType(), "Warn");
Log4Helper.Info(this.GetType(), "Info");
Log4Helper.Debug(this.GetType(), "Debug");
 
 

Log4Net跨项目使用:

如果我们将log4net帮助类放在另一个公共的类库项目中,又需要在另一个引用的项目中使用log4helper类,

这时候仅需要在该项目里的Properties下的AssemblyInfo.cs文件中加入这句:

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Config/log4net.config", Watch = true)]


猜你喜欢

转载自blog.csdn.net/qq_35534449/article/details/80579430
今日推荐