zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    Windows下开发过程中常用的Linux指令
    flask sqlalchemy实现分页功能
    channel(3) 一 基本定义
    goroutine(2) goroutine同步
    goroutine(1) go的调度器
    go 语言 interface(接口 二)
    go 语言 interface(接口 一)
    go 语言 defer
    go 语言 闭包
    go 语言 函数
  • 原文地址:https://www.cnblogs.com/steed-zgf/p/3186240.html
Copyright © 2011-2022 走看看