GG_Logs 日誌類庫封裝使用說明

3.六、GG_Logs 日誌類庫封裝使用說明

GG_Logs類庫項目,Nuget安裝log4netweb

 

添加代碼配置代碼:mvc

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

 

 

 

添加操做類代碼(Log4Net.cs):spa

using System;3d

using System.Collections.Generic;日誌

using System.Diagnostics;xml

using System.Linq;blog

using System.Text;utf-8

using System.Threading.Tasks;get

using log4net;

 

namespace GG_Logs

{

    public static class Log4Net

    {

        public static void Debug(object message)

        {

            LogManager.GetLogger(GetCurrentMethodFullName()).Debug(message);

        }

 

        public static void Debug(object message, Exception ex)

        {

            LogManager.GetLogger(GetCurrentMethodFullName()).Debug(message, ex);

        }

 

        public static void Error(object message)

        {

            LogManager.GetLogger(GetCurrentMethodFullName()).Error(message);

        }

 

        public static void Error(object message, Exception exception)

        {

            LogManager.GetLogger(GetCurrentMethodFullName()).Error(message, exception);

        }

 

        private static string GetCurrentMethodFullName()

        {

            try

            {

                StackFrame frame;

                string str2;

                int num = 2;

                StackTrace trace = new StackTrace();

                int length = trace.GetFrames().Length;

                do

                {

                    frame = trace.GetFrame(num++);

                    str2 = frame.GetMethod().DeclaringType.ToString();

                }

                while (str2.EndsWith("Exception") && (num < length));

                string name = frame.GetMethod().Name;

                return (str2 + "." + name);

            }

            catch

            {

                return null;

            }

        }

 

        public static void Info(object message)

        {

            LogManager.GetLogger(GetCurrentMethodFullName()).Info(message);

        }

 

        public static void Info(object message, Exception ex)

        {

            LogManager.GetLogger(GetCurrentMethodFullName()).Info(message, ex);

        }

 

        public static void Warn(object message)

        {

            LogManager.GetLogger(GetCurrentMethodFullName()).Warn(message);

        }

 

        public static void Warn(object message, Exception ex)

        {

            LogManager.GetLogger(GetCurrentMethodFullName()).Warn(message, ex);

        }

 

    }

}

 

 

在使用的項目中引用類的GG_Logs.dll,新建文件log4net.config 並添加配置代碼:

<?xml version="1.0" encoding="utf-8" ?>

 

<configuration>

 

  <configSections>

 

    <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>

 

  </configSections>

 

  <log4net>

    <!-- OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL -->

    <!-- Set root logger level to ERROR and its appenders -->

    <root>

      <level value="ALL" />

      <appender-ref ref="SysAppender" />

    </root>

    <!-- Print only messages of level DEBUG or above in the packages -->

    <logger name="WebLogger">

      <level value="DEBUG" />

    </logger>

    <appender name="SysAppender" type="log4net.Appender.RollingFileAppender,log4net">

      <!--文件名稱-->

      <appendToFile value="true"/>

      <param name="File" value="C:/Logs/" />

      <param name="AppendToFile" value="true" />

      <param name="RollingStyle" value="Date" />

      <!--文件名稱-->

      <param name="DatePattern" value="&quot;Logs_&quot;yyyyMMdd&quot;.txt&quot;" />

      <param name="StaticLogFileName" value="false" />

      <!--設置無限備份=-1 ,最大備份數爲1000-->

      <param name="MaxSizeRollBackups" value="1000"/>

      <!--每一個文件的大小-->

      <param name="MaximumFileSize" value="500KB"/>

     

     

      <layout type="log4net.Layout.PatternLayout,log4net">

        <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />

      </layout>

    </appender>

    <appender name="consoleApp" type="log4net.Appender.ConsoleAppender,log4net">

      <layout type="log4net.Layout.PatternLayout,log4net">

        <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />

      </layout>

    </appender>

  </log4net>

 

</configuration>

 

調用代碼很簡單。

using GG_Logs;

Log4Net.Error("hhhhhhhhhhhhh");

 

實際項目調用,創建mvc模式的web項目,項目名稱Web。

 

 

當前mvc項目想建立一個log4net.config 日誌配置文件:代碼以下

<?xml version="1.0" encoding="utf-8" ?>

 

<configuration>

 

  <configSections>

 

    <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>

 

  </configSections>

  <log4net>

    <!-- OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL -->

    <!-- Set root logger level to ERROR and its appenders -->

    <root>

      <level value="ALL" />

      <appender-ref ref="SysAppender" />

    </root>

    <!-- Print only messages of level DEBUG or above in the packages -->

    <logger name="WebLogger">

      <level value="DEBUG" />

    </logger>

    <appender name="SysAppender" type="log4net.Appender.RollingFileAppender,log4net">

      <!--文件名稱-->

      <appendToFile value="true"/>

      <param name="File" value="D:/Logs/" />

      <param name="AppendToFile" value="true" />

      <param name="RollingStyle" value="Date" />

      <!--文件名稱-->

      <param name="DatePattern" value="&quot;Logs_&quot;yyyyMMdd&quot;.txt&quot;" />

      <param name="StaticLogFileName" value="false" />

      <!--設置無限備份=-1 ,最大備份數爲1000-->

      <param name="MaxSizeRollBackups" value="1000"/>

      <!--每一個文件的大小-->

      <param name="MaximumFileSize" value="500KB"/>

 

      <layout type="log4net.Layout.PatternLayout,log4net">

        <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />

      </layout>

    </appender>

    <appender name="consoleApp" type="log4net.Appender.ConsoleAppender,log4net">

      <layout type="log4net.Layout.PatternLayout,log4net">

        <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />

      </layout>

    </appender>

  </log4net>

 

</configuration>

 

當前項目添加引用

 

 

 

打開HomeController.cs 控制器 ,添加代碼

using GG_Logs;  //命名空間引用

Index()方法加入代碼Log4Net.Error("hhhhhhhhhhhhh");

 

運行項目,在D盤logs文件夾下有txt文本,日誌操做完成。

 

須要的可加qq羣:547765059  ,源碼在空間裏。

相關文章
相關標籤/搜索