Log4Net可以根據不同的類容輸出到不同的文件夾下面


1 配置文件log4net_dcs.config

<configuration>
  <configSections>
    <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
  </configSections>
  <appSettings>
  </appSettings>
  <log4net>
    <!--一般信息日志-->
    <appender name="InfoLog" type="log4net.Appender.RollingFileAppender">
      <file value="Log/InfoLog/" />
      <appendToFile value="true" />
      <rollingStyle value="Date" />
      <staticLogFileName value="false" />
      <datePattern value="yyyyMMdd&quot;.log&quot;" />
      <layout type="log4net.Layout.PatternLayout">
        <!--輸出格式-->
        <conversionPattern value="%date %-5level %message%newline" />
      </layout>
      <filter type="log4net.Filter.LoggerMatchFilter">
        <loggerToMatch value="InfoLog" />
      </filter>
      <filter type="log4net.Filter.DenyAllFilter" />
    </appender>
    <!--系統日志-->
    <appender name="SysLog" type="log4net.Appender.RollingFileAppender">
      <file value="Log/SysLog/" />
      <appendToFile value="true" />
      <rollingStyle value="Date" />
      <staticLogFileName value="false" />
      <datePattern value="yyyyMMdd&quot;.log&quot;" />
      <layout type="log4net.Layout.PatternLayout">
        <!--輸出格式-->
        <conversionPattern value="%date %-5level %message%newline" />
      </layout>
      <filter type="log4net.Filter.LoggerMatchFilter">
        <loggerToMatch value="SysLog" />
      </filter>
      <filter type="log4net.Filter.DenyAllFilter" />
    </appender>
    <!--通訊服務日志-->
    <appender name="CommLog" type="log4net.Appender.RollingFileAppender">
      <file value="Log/CommLog/" />
      <appendToFile value="true" />
      <rollingStyle value="Date" />
      <staticLogFileName value="false" />
      <datePattern value="yyyyMMdd&quot;.log&quot;" />
      <layout type="log4net.Layout.PatternLayout">
        <!--輸出格式-->
        <conversionPattern value="%date %-5level %message%newline" />
      </layout>
      <filter type="log4net.Filter.LoggerMatchFilter">
        <loggerToMatch value="CommLog" />
      </filter>
      <filter type="log4net.Filter.DenyAllFilter" />
    </appender>

    <!--第三方應用服務日志-->
    <appender name="ThirdLog" type="log4net.Appender.RollingFileAppender">
      <file value="Log/ThirdLog/" />
      <appendToFile value="true" />
      <rollingStyle value="Date" />
      <staticLogFileName value="false" />
      <datePattern value="yyyyMMdd&quot;.log&quot;" />
      <layout type="log4net.Layout.PatternLayout">
        <!--輸出格式-->
        <conversionPattern value="%date %-5level %message%newline" />
      </layout>
      <filter type="log4net.Filter.LoggerMatchFilter">
        <loggerToMatch value="ThirdLog" />
      </filter>
      <filter type="log4net.Filter.DenyAllFilter" />
    </appender>

    <!--數據持久化日志-->
    <appender name="PersistenceLog" type="log4net.Appender.RollingFileAppender">
      <file value="Log/PersistenceLog/" />
      <appendToFile value="true" />
      <rollingStyle value="Date" />
      <staticLogFileName value="false" />
      <datePattern value="yyyyMMdd&quot;.log&quot;" />
      <layout type="log4net.Layout.PatternLayout">
        <!--輸出格式-->
        <conversionPattern value="%date %-5level %message%newline" />
      </layout>
      <filter type="log4net.Filter.LoggerMatchFilter">
        <loggerToMatch value="PersistenceLog" />
      </filter>
      <filter type="log4net.Filter.DenyAllFilter" />
    </appender>
    <root>
      <level value="ALL"/>
      <appender-ref ref="InfoLog"/>
      <appender-ref ref="SysLog"/>
      <appender-ref ref="CommLog"/>
      <appender-ref ref="ThirdLog"/>
      <appender-ref ref="PersistenceLog"/>
    </root>
  </log4net>
</configuration>

2 在AssemblyInfo.cs文件中添加

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

 

3添加幫助類文件C_LogWriter.cs

   /// <summary>
    /// 日志等級
    /// </summary>
    enum LogLevel
    {
        Error,
        Debug,
        Warning,
        Info
    }
    /// <summary>
    /// 日志類型
    /// </summary>
    enum LogType
    {
        InfoLog,
        SysLog,
        CommLog,
        ThirdLog,
        PersistenceLog
    }
    /// <summary>
    /// 日志記錄服務
    /// </summary>
    class C_LogWriter
    {
        /// <summary>
        /// 日志接口
        /// </summary>
        private log4net.ILog m_Log;

        public void Init(LogType _LogType)
        {
            string s = _LogType.ToString();
            m_Log = log4net.LogManager.GetLogger(s);
        }
        /// <summary>
        /// 輸出錯誤級別日志
        /// </summary>
        /// <param name="message">輸出的消息</param>
        public void Error(string message)
        {
            //記錄日志
            WriteLog(LogLevel.Error, message);
        }

        /// <summary>
        /// 輸出警告級別日志
        /// </summary>
        /// <param name="message">輸出的消息</param>
        public void Warning(string message)
        {
            //記錄日志
            WriteLog(LogLevel.Warning, message);
        }

        /// <summary>
        /// 輸出信息級別日志
        /// </summary>
        /// <param name="message">輸出的消息</param>
        public void Info(string message)
        {
            //記錄日志
            WriteLog(LogLevel.Info, message);
        }

        /// <summary>
        /// 輸出調試級別日志
        /// </summary>
        /// <param name="message">輸出的消息</param>
        public void Debug(string message)
        {
            //記錄日志
            WriteLog(LogLevel.Debug, message);
        } 

        /// <summary>
        /// 記錄系統日志
        /// </summary>
        /// <param name="logLevel">日志級別</param>
        /// <param name="message">輸出的消息</param>
        private void WriteLog(LogLevel logLevel, string message)
        {
            switch (logLevel)
            {
                case LogLevel.Debug:
                    m_Log.Debug(message);
                    break;
                case LogLevel.Error:
                    m_Log.Error(message);
                    break;
                case LogLevel.Info:
                    m_Log.Info(message);
                    break;
                case LogLevel.Warning:
                    m_Log.Warn(message);
                    break;
            }

        }

    }

4 調用

 C_LogWriter log = new C_LogWriter();
            log.Init(LogType.CommLog);
            log.Warning("前蘇聯,。");


            log = new C_LogWriter();
            log.Init(LogType.InfoLog);
            log.Warning("前。");


            log = new C_LogWriter();
            log.Init(LogType.PersistenceLog);
            log.Warning("年開。");


            log = new C_LogWriter();
            log.Init(LogType.SysLog);
            log.Warning("前年開。");


            log = new C_LogWriter();
            log.Init(LogType.ThirdLog);
            log.Warning("前蘇聯軍隊在1值。");

 


免責聲明!

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



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