• log4net保存到数据库系列一:WebConfig中配置log4net


    园子里面有很多关于log4net保存到数据库的帖子,但是要动手操作还是比较不易,从头开始学习log4net数据库日志

    下面先一点一点来学习如果进行配置

    1.下载安装

    • Nuget安装:

    • Nuget控制台安装:
    Install-Package log4net
    
    • 官方下载最新版本:

    http://logging.apache.org/log4net/download_log4net.cgi

    2.创建数据库脚本

    1 CREATE TABLE [dbo].[Log] (
    2     [Id] [int] IDENTITY (1, 1) NOT NULL,
    3     [Date] [datetime] NOT NULL,
    4     [Thread] [varchar] (255) NOT NULL,
    5     [Level] [varchar] (50) NOT NULL,
    6     [Logger] [varchar] (255) NOT NULL,
    7     [Message] [varchar] (4000) NOT NULL,
    8     [Exception] [varchar] (2000) NULL
    9 )
    数据库脚本

    3.配置文件

    WebConfig的configSections节点增加

    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
    <log4net>
        <!--注册Appender-->
        <root>
          <level value="ALL" />
          <appender-ref ref="AdoNetAppender" />
        </root>
        <!--配置Appender-->
        <appender name="AdoNetAppender" 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="data source=[服务器地址];initial catalog=[数据库];persist security info=True;user id=[账号];password=[密码];MultipleActiveResultSets=True;" />
          <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>
      </log4net>
    WebConfig中配置log4net节点

    4.设置监控

    AssemblyInfo.cs中增加代码

    [assembly: log4net.Config.XmlConfigurator(Watch = true)]
    

      

     5.测试代码

    ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
    log.Error("Error是错误", new Exception("错误"));
    log.Fatal("Fatal是严重错误", new Exception("致命错误"));
    log.Info("Info是普通消息");
    log.Debug("Debug是调试消息");
    View Code

     6.测试成功

  • 相关阅读:
    Distributed System
    APP专项测试之兼容性测试
    面试如何正确谈薪?
    跳槽季,如何做好技术面试准备?
    Appium基础
    设置安装程序位置
    获取文件版本号
    28-PV&PVC
    Docker-文件拷贝
    Kubemark压测常用命令
  • 原文地址:https://www.cnblogs.com/jmoney/p/5682580.html
Copyright © 2020-2023  润新知