zoukankan      html  css  js  c++  java
  • 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值。");
  • 相关阅读:
    【Pandas最好用的函数】
    【自动下单外挂】
    【爬取新浪股票实时数据--tushare】
    linux入门:设置代理服务器
    nginx入门(3):静态服务搭建
    nginx入门(2):配置文档结构
    nginx入门(1):开启,关闭,重新加载配置文件
    SELinux的开启和关闭
    centos7 播放网页flash视频
    索引最左前缀匹配原则
  • 原文地址:https://www.cnblogs.com/cdaq/p/5052055.html
Copyright © 2011-2022 走看看