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".log"" />
      <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".log"" />
      <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".log"" />
      <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".log"" />
      <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".log"" />
      <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 Global.asax   Application_Start中添加 

log4net.Config.XmlConfigurator.Configure();//读取了配置文件中关于Log4Net配置信息.

 

4 添加帮助类文件C_LogWriter.cs

/// <summary>
    /// 日志等级
    /// </summary>
    public enum LogLevel
    {
        Error,
        Debug,
        Warning,
        Info
    }
    /// <summary>
    /// 日志类型
    /// </summary>
   public enum LogType
    {
        InfoLog,
        SysLog,
        CommLog,
        ThirdLog,
        ErrorLog
    }
    /// <summary>
    /// 日志记录服务
    /// </summary>
   public static class C_LogWriter
    {
        /// <summary>
        /// 日志接口
        /// </summary>
        private static log4net.ILog m_Log;

        public static void Init(LogType _LogType)
        {
            string s = _LogType.ToString();
            m_Log = log4net.LogManager.GetLogger(s);
        }
        /// <summary>
        /// 输出错误级别日志
        /// </summary>
        /// <param name="message">输出的消息</param>
        public static void Error(string message)
        {
            //记录日志
            WriteLog(LogLevel.Error, message);
        }

        /// <summary>
        /// 输出警告级别日志
        /// </summary>
        /// <param name="message">输出的消息</param>
        public static void Warning(string message)
        {
            //记录日志
            WriteLog(LogLevel.Warning, message);
        }

        /// <summary>
        /// 输出信息级别日志
        /// </summary>
        /// <param name="message">输出的消息</param>
        public static void Info(string message)
        {
            //记录日志
            WriteLog(LogLevel.Info, message);
        }

        /// <summary>
        /// 输出调试级别日志
        /// </summary>
        /// <param name="message">输出的消息</param>
        public static void Debug(string message)
        {
            //记录日志
            WriteLog(LogLevel.Debug, message);
        }

        /// <summary>
        /// 记录系统日志
        /// </summary>
        /// <param name="logLevel">日志级别</param>
        /// <param name="message">输出的消息</param>
        private static 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;
            }

        }

    }

  5 调用

C_LogWriter.Init(LogType.ErrorLog);
C_LogWriter.Warning("前苏联,。");

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

posted @ 2017-08-17 16:18  LuckCode  阅读(54)  评论(0)    收藏  举报