NetCore 使用Log4net 封裝日志幫助類


 

 /// <summary>
    /// log4net日志幫助類
    /// </summary>
    public class LogHelper
    {
        private static ILog logger;
        private static ILoggerRepository loggerRepository { get; set; }
        static LogHelper()
        {
            loggerRepository = log4net.LogManager.CreateRepository("NETCoreLog4netRepository");
            var file = new FileInfo(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "XmlConfig\\log4net.config"));
            log4net.Config.XmlConfigurator.Configure(loggerRepository, file);
            logger = LogManager.GetLogger("NETCoreLog4netRepository", "loginfo");
        }
        /// <summary>
        /// 普通日志
        /// </summary>
        /// <param name="message"></param>
        /// <param name="exception"></param>
        public static void Info(string message, Exception exception = null)
        {
            if (exception == null)
                logger.Info(message);
            else
                logger.Info(message, exception);
        }

        /// <summary>
        /// 告警日志
        /// </summary>
        /// <param name="message"></param>
        /// <param name="exception"></param>
        public static void Warn(string message, Exception exception = null)
        {
            if (exception == null)
                logger.Warn(message);
            else
                logger.Warn(message, exception);
        }

        /// <summary>
        /// 錯誤日志
        /// </summary>
        /// <param name="message"></param>
        /// <param name="exception"></param>
        public static void Error(string message, Exception exception = null)
        {
            if (exception == null)
                logger.Error(message);
            else
                logger.Error(message, exception);
        }
    }

 

配置文件

<?xml version="1.0" encoding="utf-8" ?>
<!--LOG4日志級別 
    0:TRACE;記錄一些對程序員調試問題有幫助的信息, 其中可能包含一些敏感信息, 所以應該避免在生產環境中啟用Trace日志。
    1:DEBUG;記錄一些在開發和調試階段有用的短時變量(Short-term usefulness), 所以除非為了臨時排除生產環境的故障,開發人員應該盡量避免在生產環境中啟用Debug日志。
    2:INFO;信息日志,記錄應用程序的一些流程, 例如,記錄當前api請求的url,請求參數等。
    3:WARN;警告日志;記錄應用程序中發生的不正常或者未預期的事件信息。這些信息中可能包含錯誤消息或者錯誤產生的條件, 例如, 文件未找到,用戶不存在。
    4:ERROR;錯誤日志;記錄應用程序中某個操作產生的錯誤和異常信息,如對空值進行操作等。
    5:FATAL;毀滅性錯誤;記錄一些需要立刻修復的問題。例如數據丟失,磁盤空間不足。
trace<debug<info<warn<error<fatal -->
<log4net>
  <appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="log4net\\logerror\\" />
    <appendToFile value="true" />
    <rollingStyle value="Date"/>
    <datePattern value="yyyy-MM-dd-'error.log'"/>
    <maxSizeRollBackups value="100" />
    <staticLogFileName value="false" />
    <encoding value="utf-8" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%newline%date [%thread %-5level] %n -- %m%n" />
    </layout>
    <filter type="log4net.Filter.LevelRangeFilter">
      <levelMin value="ERROR" />
      <levelMax value="FATAL" />
    </filter>
  </appender>

  <appender name="WarnRollingFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="log4net\\logwarn\\" />
    <appendToFile value="true" />
    <rollingStyle value="Date"/>
    <datePattern value="yyyy-MM-dd-'warn.log'"/>
    <maxSizeRollBackups value="100" />
    <staticLogFileName value="false" />
    <encoding value="utf-8" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%newline%date [%thread %-5level] %n -- %m%n" />
    </layout>
    <filter type="log4net.Filter.LevelRangeFilter">
      <levelMin value="WARN" />
      <levelMax value="WARN" />
    </filter>
  </appender>

  <appender name="InfoRollingFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="log4net\\loginfo\\" />
    <appendToFile value="true" />
    <rollingStyle value="Date"/>
    <datePattern value="yyyy-MM-dd-'info.log'"/>
    <maxSizeRollBackups value="100" />
    <staticLogFileName value="false" />
    <encoding value="utf-8" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%newline%date [%thread %-5level] %n -- %m%n" />
    </layout>
    <filter type="log4net.Filter.LevelRangeFilter">
      <levelMin value="TRACE " />
      <levelMax value="INFO" />
    </filter>
  </appender>

  <root>
    <level value="All" />
    <appender-ref ref="ErrorRollingFileAppender" />
    <appender-ref ref="WarnRollingFileAppender" />
    <appender-ref ref="InfoRollingFileAppender" />
  </root>
</log4net>

最后在Startup啟動類中 注入一下Loghelper就完成了日志幫助類的封裝了

 

 

 

參考的博文地址:https://blog.csdn.net/a123_z/article/details/94010798

https://www.cnblogs.com/pudefu/p/9300697.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM