【问题标题】:Log4Net - AdoNetAppender for sqlite not insertingLog4Net - 用于 sqlite 的 AdoNetAppender 未插入
【发布时间】:2016-03-06 04:24:52
【问题描述】:

我正在尝试使用 sqlite db 文件实现 log4net,但是当我记录某些内容时没有任何反应。

我的配置:

<log4net>
      <appender name="sqlite-appender" type="log4net.Appender.AdoNetAppender"> 
      <bufferSize value="1" />
      <connectionType value="System.Data.SQLite.SQLiteConnection, System.Data.SQLite" />
      <connectionString name = "DbConn" value="Data Source=C:[FilePath]\DebugLog.db;Synchronous=Off " />
      <commandText value="INSERT INTO debug (Date, Level, Logger, Message) VALUES (@Date, @Level, @Logger, @Message)" />
      <immediateFlush value="true" />
      <parameter>
        <parameterName value="@Date" />
        <dbType value="DateTime" />
        <layout type="log4net.Layout.RawTimeStampLayout" />
    </parameter>
    <parameter>
        <parameterName value="@Level" />
        <dbType value="String" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%level" />
        </layout>
    </parameter>
    <parameter>
        <parameterName value="@Logger" />
        <dbType value="String" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%logger" />
        </layout>
    </parameter>
    <parameter>
        <parameterName value="@Message" />
        <dbType value="String" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%message" />
        </layout>
    </parameter>
   </appender>

    <root>
      <level value="DEBUG" />
      <appender-ref ref="sqlite-appender" />
    </root>
  </log4net>

我在配置文件中设置了真正的调试标志,我得到了这个:

    log4net:ERROR [AdoNetAppender] ErrorCode: GenericFailure. Exception while writing to database
System.ArgumentOutOfRangeException: El índice estaba fuera del intervalo. Debe ser un valor no negativo e inferior al tamaño de la colección.
Nombre del parámetro: index
   en System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
   en System.Data.SQLite.SQLiteParameterCollection.GetParameter(Int32 index)
   en System.Data.SQLite.SQLiteParameterCollection.GetParameter(String parameterName)
   en System.Data.Common.DbParameterCollection.System.Data.IDataParameterCollection.get_Item(String parameterName)
   en log4net.Appender.AdoNetAppenderParameter.FormatValue(IDbCommand command, LoggingEvent loggingEvent)
   en log4net.Appender.AdoNetAppender.SendBuffer(IDbTransaction dbTran, LoggingEvent[] events)
   en log4net.Appender.AdoNetAppender.SendBuffer(LoggingEvent[] events)
System.ArgumentOutOfRangeException: El índice estaba fuera del intervalo. Debe ser un valor no negativo e inferior al tamaño de la colección.
Nombre del parámetro: index
   en System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
   en System.Data.SQLite.SQLiteParameterCollection.GetParameter(Int32 index)
   en System.Data.SQLite.SQLiteParameterCollection.GetParameter(String parameterName)
   en System.Data.Common.DbParameterCollection.System.Data.IDataParameterCollection.get_Item(String parameterName)
   en log4net.Appender.AdoNetAppenderParameter.FormatValue(IDbCommand command, LoggingEvent loggingEvent)
   en log4net.Appender.AdoNetAppender.SendBuffer(IDbTransaction dbTran, LoggingEvent[] events)
   en log4net.Appender.AdoNetAppender.SendBuffer(LoggingEvent[] events)

当我使用 FileAppender 时它工作正常我不知道会发生什么

【问题讨论】:

  • 您使用的是 1.2.14 吗?在那个版本中有一个带有 ADONetAppender 的 known issue
  • 是的,我用的是那个版本,我应该用什么版本? 1.2.13?
  • 是的,现在降级到那个,直到 1.2.15 出现修复。
  • 谢谢我降级到 1.2.13 并且它工作正常

标签: c# sqlite log4net adonetappender


【解决方案1】:

我使用的 1.2.14 版本存在 ADONetAppender 的已知问题。

所以我只是降级到 1.2.13,它工作正常。

先卸载1.2.14版本:

PM> Uninstall-Package log4net Uninstall-Package

然后安装之前的版本:

PM> Install-Package log4net -Version 2.0.3

感谢stuartd给我答案。

【讨论】:

  • 更新版本 1.2.15 可用。在其发行说明中,它说 ado.net 问题已解决。
  • 谢谢,我去看看。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-05
  • 2015-11-22
  • 1970-01-01
  • 2019-11-11
相关资源
最近更新 更多