log4net使用

1.下载log4net.dll
2.封装Debug类,类似Unity的Debug一样使用

using log4net;
using log4net.Config;
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;

public static class Debug
{
    private static ILog m_Log;

    static Debug()
    {
        XmlConfigurator.ConfigureAndWatch(new FileInfo(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile));
        m_Log = LogManager.GetLogger(typeof(Debug));
    }

    public static void Log(object message)
    {
        m_Log.Debug(message);
    }

    public static void Log(string format, params object[] args)
    {
        m_Log.DebugFormat(format, args);
    }

    public static void LogInfo(object message)
    {
        m_Log.Info(message);
    }

    public static void LogInfo(string format, params object[] args)
    {
        m_Log.InfoFormat(format, args);
    }

    public static void LogWarn(object message)
    {
        m_Log.Warn(message);
    }

    public static void LogWarn(string format, params object[] args)
    {
        m_Log.WarnFormat(format, args);
    }

    public static void LogError(object message)
    {
        m_Log.Error(message);
    }

    public static void LogError(string format, params object[] args)
    {
        m_Log.ErrorFormat(format, args);
    }

    public static void LogFatle(object message)
    {
        m_Log.Fatal(message);
    }

    public static void LogFatle(string format, params object[] args)
    {
        m_Log.FatalFormat(format, args);
    }
}

3.编辑log4net.config,并放置在解决方案中

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
  </configSections>
  <log4net>
    <root>
      <level value="All"/>
      <appender-ref ref="RollingLogFileAppender"/>
      <appender-ref ref="ConsoleAppender"/>
    </root>
          
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="log\logfile.log"/>
      <appendToFile value="true"/>
      <Encoding value="UTF-8" />
      <!--按日期产生文件夹,文件名[在日期方式与混合方式下使用]日志文件名格式为:2008-08-31.log -->
      <param name= "DatePattern" value= "yyyy-MM-dd&quot;.log&quot;"/>
      <!--log保留天数-->
      <param name= "MaxSizeRollBackups" value= "10"/>
      <!--日志文件名是否是固定不变的(是否只写到一个文件中)-->
      <param name= "StaticLogFileName" value= "false"/>
       <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
      <param name="RollingStyle" value="Date" />
      <!--每个文件的大小。只在混合方式与文件大小方式下使用,超出大小的在文件名后自动增加1重新命名-->
      <param name="maximumFileSize" value="500KB" />
      <layout type="log4net.Layout.PatternLayout">
         <!--
          %d, %date     :表示当然的时间
        %p, %level    :表示日志的级别
        %c, %logger   :表示日志产生的主题或名称,通常是所在的类名,便于定位问题
        %m, %message  :表示日志的具体内容
        %n, %newline  :换行
          %exception    :表示异常信息
        -->
       <param name="ConversionPattern" value="%d [%t] %-5p %c - %m %logger %n" />
      </layout>
    </appender>
  
    <!-- 控制台显示日志 -->
    <appender name="ConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
      <!-- 设置不同级别控制台显示的不同颜色 -->
      <mapping>
        <level value="INFO" />
        <foreColor value="Green" />
      </mapping>
      <mapping>
        <level value="DEBUG" />
        <foreColor value="White" />
      </mapping>
      <mapping>
        <level value="WARN" />
        <foreColor value="Yellow" />
      </mapping>
      <mapping>
        <level value="ERROR" />
        <foreColor value="Red, HighIntensity" />
      </mapping>
      <!-- 记录的格式。 -->
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date{HH:mm:ss,fff} [%-5level] %m %n" />
      </layout>
      <!-- 
      过滤器type有如下几种类型
      log4net.Filter.DenyAllFilter        丢弃所有日志事件。
      log4net.Filter.LevelMatchFilter      准确匹配事件等级。
      log4net.Filter.LevelRangeFilter      匹配一个范围的等级。
      log4net.Filter.LoggerMatchFilter    匹配一个日志器名字的开始。
      log4net.Filter.PropertyFilter        匹配指定属性名称的子字符串。
      log4net.Filter.StringMatchFilter    匹配事件消息的子字符串。
      -->
      <filter type="log4net.Filter.LevelRangeFilter">
        <!-- 控制输出日志的级别范围 -->
        <param name="LevelMin" value="DEBUG" />
        <param name="LevelMax" value="Error" />
      </filter>
    </appender>
  </log4net>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2"/>
  </startup>
</configuration>

4.AssemblyInfo结尾追加[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]
在这里插入图片描述

5.最后选择log4net.config,在高级栏目中:复制到输出目录更改为:始终复制

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值