C# Asp.net MvC 使用Log4Net 日志组件

1. 首先要下载 log4net.2.0.8 组件Dll 引用 放在自己的项目中 , 在自己的web项目中找到 Global.asax文件Application_Start 方法中      加载你的 log4net.config 日志配置文件

 protected void Application_Start()
        {
          
            log4net.Config.XmlConfigurator.Configure(new FileInfo(Server.MapPath("/Config/Log4Net.config")));
        }

log4net.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  </configSections>
  <log4net>
    <appender name="AdoNetAppender_file" type="log4net.Appender.RollingFileAppender">
      <!--日志文件路径,按文件大小方式输出时在这里指定文件名,并且前面的日志按天在文件名后自动添加当天日期形成文件-->
      <param name= "File" value= "Log\\"/>
      <!--是否是向文件中追加日志-->
      <param name= "AppendToFile" value= "true"/>
      <!--记录日志写入文件时,不锁定文本文件-->
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <!--Unicode编码-->
      <Encoding value="UTF-8" />
      <!--最多产生的日志文件数,value="-1"为不限文件数-->
      <param name="MaxSizeRollBackups" value="-1" />
      <!--log保留天数-->
      <param name= "MaxSizeRollBackups" value= "365" />
      <!--日志文件名是否是固定不变的(是否只写到一个文件中)-->
      <param name= "StaticLogFileName" value= "false" />
      <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
      <param name="RollingStyle" value="Date" />
      <!--按日期产生文件夹,文件名[在日期方式与混合方式下使用]日志文件名格式为:2008-08-31.log -->
      <param name= "DatePattern" value= "yyyy-MM-dd&quot;.log&quot;"/>
      <!--<param name= "DatePattern" value= "yyyy-MM/yyyy-MM-dd&quot;.log&quot;"/>-->
      <!--每个文件的大小。只在[混合方式与文件大小方式]下使用,超出大小的在文件名后自动增加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 %exception %n" />
      </layout>
    </appender>
    <logger name="SystemLog" additivity="true">
      <level value="ALL"/>
      <appender-ref ref="AdoNetAppender_file" />
    </logger>
  </log4net>
</configuration>

2.Log4Net实体类

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

namespace UtilityFactory.UtilityRoom
{
    public class Log4Net
    {

        private Log4Net()
        {

        }

        public static readonly ILog log = LogManager.GetLogger("SystemLog");

        public static void Info(object msg)
        {
            if (log.IsInfoEnabled)
            {
                log.Info(JsonUtility.SerializeObject(msg));
            }
        }

        public static void Info(string title, object msg)
        {
            if (log.IsInfoEnabled)
            {
                log.Info(title + ": " + JsonUtility.SerializeObject(msg));
            }
        }

        public static void Info(string msg)
        {
            if (log.IsInfoEnabled)
            {
                log.Info(msg);
            }
        }

        public static void Warn(string msg)
        {
            if (log.IsWarnEnabled)
            {
                log.Warn(msg);
            }
        }

        public static void Debug(object msg)
        {
            if (log.IsDebugEnabled)
            {
                log.Debug(JsonUtility.SerializeObject(msg));
            }
        }

        public static void Debug(string msg)
        {
            if (log.IsDebugEnabled)
            {
                log.Debug(msg);
            }
        }

        public static void Debug(string msg, Exception ex)
        {
            if (log.IsDebugEnabled)
            {
                log.Debug(msg, ex);
            }
        }

        public static void Error(string msg, object obj, Exception ex)
        {
            if (log.IsErrorEnabled)
            {
                log.Error(msg + " " + JsonUtility.SerializeObject(obj), ex);
            }
        }

        public static void Error(string msg, Exception ex)
        {
            if (log.IsErrorEnabled)
            {
                log.Error(msg, ex);
            }
        }

        public static void Fatal(string msg, Exception ex)
        {
            if (log.IsFatalEnabled)
            {
                log.Fatal(msg, ex);
            }
        }


    }

 public class JsonUtility
    {

        /// <summary>
        /// 将对象序列化为JSON格式
        /// </summary>
        /// <param name="obj">对象</param>
        /// <returns>json字符串</returns>
        public static string SerializeObject(object obj)
        {
            if (obj == null)
            {
                return string.Empty;
            }

            return JsonConvert.SerializeObject(obj);
        }

    }

}

3.调用

Log4Net.Info('记录日志!!!');
发布了60 篇原创文章 · 获赞 10 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_24432127/article/details/104037683