log4Net配置以及使用入门

 

<configSections>
    <section name=”log4net”
type=”System.Configuration.IgnoreSectionHandler”/>
    <!–<section name=”log4net”
type=”log4net.Config.Log4NetConfigurationSectionHandler, log4net”
/>–>
  </configSections>
  <log4net>
    <!–定义输出到文件中–>
    <!–Error–>
    <appender name=”RollingErrorLogFileAppender”
type=”log4net.Appender.RollingFileAppender”>
      <!–定义文件存放地点–>
      <file  value=”Mylog\\ERROR\\” />
      <appendToFile value=”true”/>
      <rollingStyle value=”Date”/>
      <datePattern value=”yyyy\\yyyyMM\\yyyyMMdd’.txt'”/>
      <staticLogFileName value=”false”/>
      <param name=”MaxSizeRollBackups” value=”1000″/>
      <layout type=”log4net.Layout.PatternLayout”>
        <!–输出格式–>
        <conversionPattern value=”%newline %n记录时间:%date
%n线程ID:[%thread] %n日志等第:%-5level %n出错类:%logger property:
[%property{NDC}] – %n错误描述:%message%newline”/>
      </layout>
      <filter type=”log4net.Filter.LevelRangeFilter”>
        <!–将日志过滤,只记录E福特ExplorerRO大切诺基到FATAL–>
        <levelMin value=”ERROR” />
        <levelMax value=”ERROR” />
      </filter>
    </appender>
    <!–FATAL–>
    <appender name=”RollingFATALLogFileAppender”
type=”log4net.Appender.RollingFileAppender”>
      <!–定义文件存放地点–>
      <file  value=”Mylog\\FATAL\\” />
      <appendToFile value=”true”/>
      <rollingStyle value=”Date”/>
      <datePattern value=”yyyy\\yyyyMM\\yyyyMMdd’.txt'”/>
      <staticLogFileName value=”false”/>
      <param name=”MaxSizeRollBackups” value=”1000″/>
      <layout type=”log4net.Layout.PatternLayout”>
        <!–输出格式–>
        <conversionPattern value=”%newline %n记录时间:%date
%n线程ID:[%thread] %n日志等级:%-5level %n出错类:%logger property:
[%property{NDC}] – %n错误描述:%message%newline”/>
      </layout>
      <filter type=”log4net.Filter.LevelRangeFilter”>
        <!–将日志过滤,只记录E翼虎ROCRUISER到FATAL–>
        <levelMin value=”FATAL” />
        <levelMax value=”FATAL” />
      </filter>
    </appender>
    <!–定义输出到数据库–>
    <!– 
    在SQL Server中创立表的SQL语句 
    CREATE TABLE [dbo].[Log] ( 
    [Id] [int] IDENTITY (1, 1) NOT NULL, 
    [Date] [datetime] NOT NULL, 
    [Thread] [varchar] (255) NOT NULL, 
    [Level] [varchar] (50) NOT NULL, 
    [Logger] [varchar] (255) NOT NULL, 
    [Message] [varchar] (4000) NOT NULL, 
    [Exception] [varchar] (2000) NULL 
); 
    –>
    <appender name=”AdoNetAppenderErrorSQLServer”
type=”log4net.Appender.AdoNetAppender”>
      <bufferSize value=”1″ />
      <connectionType value=”System.Data.SqlClient.SqlConnection,
System.Data, Version=1.0.3300.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089″ />
      <connectionString
value=”server=LONGPENG;uid=sa;pwd=0129;database=LogDB;” />
      <commandText value=”INSERT INTO LogError
([Date],[Thread],[Level],[Logger],[Message],[Exception])
VALUES (@log_date, @thread, @log_level, @logger, @message,
@exception)” />
      <parameter>
        <parameterName value=”@log_date” />
        <dbType value=”DateTime” />
        <layout type=”log4net.Layout.RawTimeStampLayout” />
      </parameter>
      <parameter>
        <parameterName value=”@thread” />
        <dbType value=”String” />
        <size value=”255″ />
        <layout type=”log4net.Layout.PatternLayout”>
          <conversionPattern value=”%thread” />
        </layout>
      </parameter>
      <parameter>
        <parameterName value=”@log_level” />
皇冠现金app,        <dbType value=”String” />
        <size value=”50″ />
        <layout type=”log4net.Layout.PatternLayout”>
          <conversionPattern value=”%level” />
        </layout>
      </parameter>
      <parameter>
        <parameterName value=”@logger” />
        <dbType value=”String” />
        <size value=”255″ />
        <layout type=”log4net.Layout.PatternLayout”>
          <conversionPattern value=”%logger” />
        </layout>
      </parameter>
      <parameter>
        <parameterName value=”@message” />
        <dbType value=”String” />
        <size value=”4000″ />
        <layout type=”log4net.Layout.PatternLayout”>
          <conversionPattern value=”%message” />
        </layout>
      </parameter>
      <parameter>
        <parameterName value=”@exception” />
        <dbType value=”String” />
        <size value=”2000″ />
        <layout type=”log4net.Layout.ExceptionLayout” />
      </parameter>
    </appender>
    <root>
      <level value=”ALL” />
      <!–文件格局记录日志–>
      <appender-ref ref=”RollingErrorLogFileAppender”/>
      <appender-ref ref=”RollingFATALLogFileAppender”/>

 <!–数据库格局记录日志–>
      <appender-ref ref=”AdoNetAppenderErrorSQLServer”/>
    </root>
  </log4net>

=========================另一种采纳的配备==============================

<log4net>
    <root>
      <level value=”ALL” />
      <appender-ref ref=”SysAppender” />
      <appender-ref ref=”consoleApp” />
    </root>
    <!–<logger name=”WebLogger”>
      <level value=”DEBUG” />
    </logger>–>
    <appender name=”SysAppender”
type=”log4net.Appender.RollingFileAppender,log4net”>
      <!–<param name=”File”
value=”E:\\COLDDEMO\\项目\\实战\\Solution201708\\logs\\”
/>–>
      <param name=”File” value=”..\\..\\MyLog\\AT\\ERROR\\”
/>
      <!–<param name=”File”
value=”C:\\TestWeb\\Debug\\Error\\” />–>
      <param name=”AppendToFile” value=”true” />
      <param name=”RollingStyle” value=”Date” />
      <param name=”DatePattern”
value=”""yyyyMMdd".txt"” />
      <param name=”StaticLogFileName” value=”false” />
      <layout type=”log4net.Layout.PatternLayout,log4net”>
        <param name=”ConversionPattern” value=”%d [%t] %-5p %c –
%m%n” />
        <param name=”Header” value=”
———————————————— ” />
        <param name=”Footer” value=”
———————-footer————————– ”
/>
      </layout>
      <filter type=”log4net.Filter.LevelRangeFilter”>
        <!–将日志过滤,只记录E宝马X3RO索罗德到FATAL–>
        <levelMin value=”ERROR” />
        <levelMax value=”ERROR” />
      </filter>
    </appender>
    <!–..\\..\\MyLog\\AT\\–>
    <appender name=”consoleApp”
type=”log4net.Appender.RollingFileAppender,log4net”>
      <!–<param name=”File”
value=”E:\\COLDDEMO\\项目\\实战\\Solution201708\\logs\\”
/>–>
      <param name=”File” value=”..\\..\\MyLog\\AT\\Warn\\”
/>
      <!–<param name=”File”
value=”C:\\TestWeb\\Debug\\Error\\” />–>
      <param name=”AppendToFile” value=”true” />
      <param name=”RollingStyle” value=”Date” />
      <param name=”DatePattern”
value=”""yyyyMMdd".txt"” />
      <param name=”StaticLogFileName” value=”false” />
      <layout type=”log4net.Layout.PatternLayout,log4net”>
        <param name=”ConversionPattern” value=”%d [%t] %-5p %c –
%m%n” />
        <param name=”Header” value=”
———————————————— ” />
        <param name=”Footer” value=”
———————-footer————————– ”
/>
      </layout>
      <filter type=”log4net.Filter.LevelRangeFilter”>
        <!–将日志过滤,只记录Warn–>
        <levelMin value=”Warn” />
        <levelMax value=”Warn” />
      </filter>
    </appender>
  </log4net>

============================================================

使用:

[assembly: log4net.Config.XmlConfigurator(Watch = true)]
namespace WebAppl
{
    public class LogHelper
    {
        /// <summary>
        /// 调用Log4net写日志
        /// </summary>
        /// <param name=”logContent”>日志内容</param>
        /// <param
name=”log4Level”>记录日志等第,枚举</param>
        public static void WriteLog(string logContent, Log4NetLevel
log4Level)
        {
            WriteLog(null, logContent, log4Level);
        }

        /// <summary>
        /// 调用Log4net写日志
        /// </summary>
        /// <param name=”type”>类的品类,钦点日志中指鹿为马的具体类
        /// <param name=”logContent”>日志内容</param>
        /// <param
name=”log4Level”>记录日志等第,枚举</param>
        public static void WriteLog(Type type, string logContent,
Log4NetLevel log4Level)
        {
            ILog log = type == null ? LogManager.GetLogger(“”) :
LogManager.GetLogger(type);

            switch (log4Level)
            {
                case Log4NetLevel.Warn:
                    log.Warn(logContent);
                    break;
                case Log4NetLevel.Debug:
                    log.Debug(logContent);
                    break;
                case Log4NetLevel.Info:
                    log.Info(logContent);
                    break;
                case Log4NetLevel.Fatal:
                    log.Fatal(logContent);
                    break;
                case Log4NetLevel.Error:
                    log.Error(logContent);
                    break;
            }
        }

    }

    /// <summary>
    /// log4net 日志等第类型枚举
    /// </summary>
    public enum Log4NetLevel
    {
        [Description(“警告新闻”)]
        Warn = 1,
        [Description(“调试新闻”)]
        Debug = 2,
        [Description(“一般新闻”)]
        Info = 3,
        [Description(“严重错误”)]
        Fatal = 4,
        [Description(“错误日志”)]
        Error = 5
    }
}

相关文章