Log4net 可直接使用的配置

config配置
<xml version="1.0">
<configuration>
  <configSections>
    <!--配置一个结点 名称为log4net-->
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
  </configSections>
  <!--
  【log4net 配置节】
  
  1、符号的特殊意义:
    %m[%message] :输出的日志消息
    %n:换行
    %d[%datetime]:输出当前语句运行的时刻
    %r :输出程序从运行到执行到当前语句时消耗的毫秒数
    %d:当前语句所在的线程ID
    %p :日志的当前优先级别
    %c:当前日志对象的名称
    %L :输出语句所在的行号
    %F:输出语句所在的文件名
    %-数字:表示该项的最小长度,如果不够,则用空格填充。
    
   2、几个级别:
     FATAL毁灭级别、ERROR错误级别、WARN警告级别、INFO消息级别、DEBUG调试级别
     这几种日志级别FATAL> ERROR> WARN> INFO>DEBUG
     只有日志输出级别大于或等于配置的级别才能输出日志信息
  -->
  <log4net>

    <!--记录日志到数据库-->
    <appender name="ADONetAppender" type="log4net.Appender.ADONetAppender">
      <!--
      bufferSize,缓存sql的条数;
      只有日志sql 大于等于 设置的条数后才执行插入到数据库中的操作;
      如果为0,表示 立刻执行插入数据库操作,或者程序/网站 关闭后 执行插入操作
      -->
      <bufferSize value="0" />
      <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
      <!--数据库连接字符串-->
      <connectionString value="server=.;database=Movies;integrated security=false;persist security info=True;uid=sa;pwd=123456;" />
      <!--插入到数据库的sql格式定义-->
      <commandText value="INSERT INTO Sys_Log (LogDate,LogThread,LogLevel,LogLogger,LogMessage,LogException) 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="50" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%t" />
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@log_level" />
        <dbType value="String" />
        <size value="200" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%p" />
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@logger" />
        <dbType value="String" />
        <size value="200" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%logger" />
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@message" />
        <dbType value="String" />
        <size value="2000" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%m" />
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@exception" />
        <dbType value="String" />
        <size value="2000" />
        <layout type="log4net.Layout.ExceptionLayout" />
      </parameter>
    </appender>

    <!--记录日志到文件-->
    <appender name="FileAppender" type="log4net.Appender.FileAppender">
      <!--日志路径-->
      <file value="Record.log"></file>
      <appendToFile value="true"></appendToFile>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="[时间]:%d%n[级别]:%p%n[对象]:%c%n[内容]:%m%n%n"></conversionPattern>
      </layout>
    </appender>

    <!--记录日志到控制台-->
    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="[时间]:%d%n[级别]:%p%n[对象]:%c%n[内容]:%m%n%n"></conversionPattern>
      </layout>
    </appender>

    <!--
      默认的日志对象配置
      level:指定日志的输出级别
      appender-ref:引用哪些附着器
     -->
    <root>
      <level value="Info"></level>
      <appender-ref ref="FileAppender"></appender-ref>
      <appender-ref ref="ConsoleAppender"></appender-ref>
      <appender-ref ref="ADONetAppender"></appender-ref>
    </root>

    <!--
       指定的日志对象配置
       level:指定日志的输出级别
       appender-ref:引用哪些附着器
    -->
    <logger name="MyLogger">
      <level value="Info"></level>
      <appender-ref ref="FileAppender"></appender-ref>
      <appender-ref ref="ConsoleAppender"></appender-ref>
      <appender-ref ref="ADONetAppender"></appender-ref>
    </logger>
  </log4net>
</configuration>
日志记录表结构
/*Log4net 日志记录表结构*/

CREATE TABLE [dbo].[Sys_Log] ( 
    [Id] [int] IDENTITY (1, 1) NOT NULL , 
    [LogDate] [datetime] NOT NULL , 
    [LogThread] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL , 
    [LogLevel] [varchar] (200) COLLATE Chinese_PRC_CI_AS NOT NULL , 
    [LogLogger] [varchar] (200) COLLATE Chinese_PRC_CI_AS NOT NULL , 
    [LogMessage] [varchar] (2000) COLLATE Chinese_PRC_CI_AS NOT NULL ,    
    [LogException] [varchar] (2000) COLLATE Chinese_PRC_CI_AS NOT NULL   

) ON [PRIMARY] 
GO
 
ALTER TABLE [dbo].[Sys_Log] WITH NOCHECK ADD 
    CONSTRAINT [PK_Log] PRIMARY KEY  CLUSTERED 
    ( 
        [Id] 
    )  ON [PRIMARY] 

GO
原文地址:https://www.cnblogs.com/steed-zgf/p/3186240.html