log4net写入文件可以,但是无法插入数据库

TyForHelpDude

这是我的配置文件,其中包含log4net属性,如果我使用“ RollingLogFileAppender”附加程序,它将正确地写入文件,但是我使用的是“ AdoNetAppender”,并希望在插入行的消息列中看到相同的字符串。但是不知何故,这是行不通的。

(表定义和查询配置来自apache文档,因此虽然我是连接字符串是我的问题,但不能错,但是应用程序已经与同一个数据库建立了连接,我也共享了adonet正在使用的连接字符串)

<log4net debug="true">
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="C:\\AkisLog\\Logs.txt" />
      <appendToFile value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="10" />
      <maximumFileSize value="10MB" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
      </layout>
    </appender>
    <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
      <bufferSize value="100" />
      <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
      <connectionString value="data source=******\SQLTEST;initial catalog=LISANSSIZ_SANTRAL_PROJE_ONAY;persist security info=True;user id=user;password=pwd" />
      <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>
      <level value="ALL" />
      <appender-ref ref="AdoNetAppender" />
    </root>
  </log4net>


 ...
<connectionStrings>
    <add name="TedasDbContext" connectionString="metadata=res://*/Project.csdl|res://*/Project.ssdl|res://*/Project.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=****\SQLTEST;initial catalog=LISANSSIZ_SANTRAL_PROJE_ONAY;persist security info=True;user id=user;password=pwd;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>

和.cs文件:

private static readonly ILog log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

if (log.IsErrorEnabled)
{
    log.Error("Error ocurred here");
}

if (log.IsDebugEnabled)
{
    log.Debug("Debug message");
}
彼德

您的缓冲区大小为100,这意味着将在100条消息之后写入消息。将其更改为1,它将直接将消息刷新到sql数据库:

 <bufferSize value="1" />

如果这样不起作用,请启用log4net内部调试,以查看是否存在连接问题。还要检查您是否具有最新版本的log4net。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Log4net 无法使用 C# 写入数据库

来自分类Dev

MySQL Appender不在Log4Net中的数据库中插入数据

来自分类Dev

Log4Net在SQL Server数据库中不写入任何内容

来自分类Dev

Log4net不登录到数据库

来自分类Dev

log4net的文件和数据库多个配置

来自分类Dev

Log4Net 在错误后未登录数据库,它如何登录文件

来自分类Dev

Log4net使用自定义附加程序将自定义对象写入sql数据库?

来自分类Dev

Log4Net写入不同的文件

来自分类Dev

log4net AdoNetAppender在数据库中插入“ Null”字符串而不是null

来自分类Dev

使用log4net登录到Oracle数据库不会立即更新数据库

来自分类Dev

使用log4net登录到Oracle数据库不会立即更新数据库

来自分类Dev

log4net未将异常记录到数据库,未显示任何错误

来自分类Dev

Log4Net AdoNetAppender-截断表/删除旧记录/限制数据库大小

来自分类Dev

log4net无法将数据插入到自定义列

来自分类Dev

防止Log4Net写入所有日志文件

来自分类Dev

Log4Net不写入输出文件

来自分类Dev

Log4Net不写入输出文件

来自分类Dev

log4net以编程方式将目标从文本更改为数据库,再更改为事件日志

来自分类Dev

log4net到类库

来自分类Dev

无法插入数据库

来自分类Dev

无法使用.net插入acces数据库

来自分类Dev

以编程方式配置log4net以写入单独的日志文件

来自分类Dev

log4net是否提供最大速率功能,即将日志写入文件的最大速度?

来自分类Dev

使用WCF时未写入Log4Net日志文件

来自分类Dev

外部dll调用后log4net写入错误的日志文件

来自分类Dev

使用log4net将原始文本写入日志文件

来自分类Dev

部署应用程序时未写入log4net日志文件

来自分类Dev

无法加载Log4Net配置

来自分类Dev

无法正确配置log4net

Related 相关文章

热门标签

归档