Aspnetboilerplate: невозможно записать журнал на SQL Server - PullRequest
0 голосов
/ 30 ноября 2018

Я хочу записывать логи в SQL Server, а не в файл.Я использую метод Logger.Debug(), но он ничего не записывает в SQL Server.

Я создал таблицу HtcLog в базе данных:

CREATE TABLE [dbo].[HtcLog] 
(
    [ID] [int] IDENTITY (1, 1) NOT NULL ,
    [Date] [datetime] NOT NULL ,
    [Thread] [nvarchar] (255) NULL ,
    [Level] [nvarchar] (50) NOT NULL ,
    [Logger] [nvarchar] (255) NULL ,
    [Message] [nvarchar] (4000) NOT NULL , 
    [Exception] [nvarchar] (2000) NULL , 
)

Я изменил log4net.config, как показано ниже:

<?xml version="1.0" encoding="utf-8" ?>
<log4net>      
  <appender name="AdoNetAppender_SQLServer" type="log4net.Appender.AdoNetAppender">
    <bufferSize value="1" />
    <connectionType value="System.Data.SqlClient.SqlConnection,System.Data,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089" />
    <connectionString value="data source=192.168.50.60;initial catalog=test_db;integrated security=false;persist security info=True;User ID=sa;Password=123456" />
    <commandText value="INSERT INTO HtcLog ([Date],[Thread],[Level],[Logger],[Message],[Exception], [CreationTime]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception, @log_date)" />
    <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="%p" />
      </layout>
    </parameter>
    <parameter>
      <parameterName value="@logger" />
      <dbType value="String" />
      <size value="255" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%c" />
      </layout>
    </parameter>
    <parameter>
      <parameterName value="@message" />
      <dbType value="String" />
      <size value="4000" />
      <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>
  <root>
    <appender-ref ref="AdoNetAppender_SQLServer" />
    <level value="DEBUG" />
  </root>
</log4net>

но это не сработало.

Не могли бы вы помочь мне решить эту проблему?Поддерживает ли ABP запись логов в БД?

...