C# Log4.Net日志组件的应用系列(二)

引言

Log4Net应该可以说是.NET中最流行的开源日志组件了。在各种项目框架中可以说是必不可少的组成部分。个人认为Log4Net有下面几个优点:

1. 使用灵活,它可以将日志分不同的等级,以不同的格式,输出到不同的媒介;

2. 配置简单

下面我将用两个系列的教程讲解Log4.Net日志组件在.Net项目中的实际应用,希望能对爱好框架设计的朋友有所帮助。

正文

我们接着系列(一)开始讲

上一篇我们是直接把Log4net的配置放在App.config中,现在我们把Log4net的配置单独出来,新建一个log4net.config文件,

这样做的好处是:使App.config更加清晰明了;方便项目迁移。

log4net.config配置文件的内容如下:

<log4net>
    <!-- 错误日志类-->
    <logger name="logerror">
      <level value="ALL" />
      <appender-ref ref="ErrorAppender" />
    </logger>
    <!-- 信息日志类 -->
    <logger name="loginfo">
      <level value="ALL" />
      <appender-ref ref="InfoAppender" />
    </logger>
    <!-- 错误日志附加介质-->
    <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="Log\\LogError\\" />
      <param name="AppendToFile" value="true" />
      <param name="MaxSizeRollBackups" value="100" />
      <param name="MaxFileSize" value="10240" />
      <param name="StaticLogFileName" value="false" />
      <param name="DatePattern" value="yyyyMMdd".htm"" />
      <param name="RollingStyle" value="Date" />
      <!--布局-->
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="<HR COLOR=red>%n异常时间:%d [%t] <BR>%n异常级别:%-5p <BR>%n异 常 类:%c [%x] <BR>%n%m <BR>%n <HR Size=1>"  />
      </layout>
    </appender>
    <!-- 信息日志附加介质-->
    <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="Log\\LogInfo\\" />
      <param name="AppendToFile" value="true" />
      <param name="MaxFileSize" value="10240" />
      <param name="MaxSizeRollBackups" value="100" />
      <param name="StaticLogFileName" value="false" />
      <param name="DatePattern" value="yyyyMMdd".htm"" />
      <param name="RollingStyle" value="Date" />
      <!-- 信息日志布局-->
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="<HR COLOR=blue>%n日志时间:%d [%t] <BR>%n日志级别:%-5p <BR>%n日 志 类:%c [%x] <BR>%n%m <BR>%n <HR Size=1>"  />
      </layout>
    </appender>
  </log4net>

 修改AssemblyInfo.cs文件

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

 

接下来封装一个LogHelper类,代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Log4Net.common
{
    public class LogHelper
    {
        public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");

        public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");

        public static void WriteLog(string info)
        {

            if (loginfo.IsInfoEnabled)
            {
                loginfo.Info(info);
            }
        }

        public static void WriteLog(string info, Exception se)
        {
            if (logerror.IsErrorEnabled)
            {
                logerror.Error(info, se);
            }
        }
    }
}
LogHelper类

 

调用LogHelper,写入不同类型的日志

运行结果

 

 

PS:欢迎扫描下方二维码或点击链接,加入QQ群

一群用代码改变世界的

 

 

posted @ 2018-07-04 15:38  Jack_000  阅读(302)  评论(0编辑  收藏  举报