配置log4net写日志到数据库

Laughing
2017-08-06 / 0 评论 / 1,012 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2021年04月27日,已超过1361天没有更新,若内容或图片失效,请留言反馈。

前一篇我们介绍了log4net写日志到文件的方法,具体可以参考。 [url
配置log4net写日志到文件
这一篇我们继续介绍log4net写日志到数据库的方法。

数据库创建脚本

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  
) ON [PRIMARY]

配置文件修改

我们只需要修改配置文件,设置数据库类型、数据库连接信息以及sql语句即可,其他的跟写入文件的方式是相同的

<?xml version="1.0" encoding="utf-8" ?>  
<configuration>  
    <configSections>  
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>  
    </configSections>  
    <log4net>  
  
        <!--定义输出到数据库中-->  
        <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">  
            <bufferSize value="1" />  
            <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />  
            <connectionString value="server=114.115.214.130;database=lisen;UID=lisen;PWD=19900629;" />  
            <commandText value="INSERT INTO Log ([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" />  
                <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>  
            <!--OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL-->  
            <level value="ALL"/>  
  
            <!--数据库形式记录日志-->  
            <appender-ref ref="AdoNetAppender"/>  
  
        </root>  
    </log4net>  
</configuration>
0

评论 (0)

取消
  1. 头像
    banxia
    Windows 10 · Google Chrome

    看看是不是真的

    回复
  2. 头像
    Allenlan
    Android · QQ Browser

    我先前用代码,然后12月后接口好像改了,导致文章和页面404,不知道你这可不可以,看看

    回复