log4net的不写入数据库 [英] Log4Net not writing to the database

查看:255
本文介绍了log4net的不写入数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我检查连接字符串(我从服务器资源管理器中得到了它)。

I've checked the connection string (I got it from the server explorer).

我已经检查在CommandText中log4net的配置。

I've checked the commandText in log4net config.

我检查了数据库权限(集成安全性优良,工作log4net的类外)。

I've checked the database permissions (integrated security is fine and works outside of the log4net class).

我检查存储库的配置属性(它配置,发现配置文件罚款)。

I've checked the repository's configured property (it is configured, it finds the config file fine).

我也检查了在配置文件中定义的字段匹配的属性(场在数据库中的表的大小等)。

I've also checked that the fields defined in the config file match the attributes (field size etc.) of the table in the database.

任何想法?

当我调试它。似乎击中了所有正确的方法,在所有正确的时间,没有引发异常

When I'm debugging it seems to be hitting all the right methods at all the right times, with no exceptions raised.

<log4net>

  <appender name="ADONetAppender" type="log4net.Appender.ADONetAppender">
    <bufferSize value="1" />
    <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    <connectionString value="" />
    <commandText value="INSERT INTO dbo.Log4Net ([Date],[Thread],[Level],[Logger],[Message]) VALUES ('01-01-2001', 'test', 'test', 'test', 'test')"/>
    <!--<commandText value="INSERT INTO dbo.Log4Net ([Date],[Thread],[Level],[Logger],[Message],[Exception],[MachineName],[CultureId],[SourcePage],[Details],[Method]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception, @MachineName, @CultureId, @SourcePage, @Details, @Method)" />-->
    <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>

...more parameters

    <securitycontext type="log4net.Util.WindowsSecurityContext">
      <credentials value="Process">
      </credentials>
    </securitycontext>
  </appender>

  <appender name="FileAppender" type="log4net.Appender.FileAppender">
    <param name="File" value="LogTest.txt"/>
    <param name="AppendToFile" value="true"/>
    <layout type="log4net.Layout.PatternLayout">
      <param name="ConversionPattern" value="%d [%t] %-2p %c [%x] - %m%n"/>
    </layout>
  </appender>

  <root>
    <appender-ref ref="ADONetAppender"/>
    <appender-ref ref="FileAppender"/>
  </root>

</log4net>



它写既不追加程序。

It's writing to neither appender.

推荐答案

右键,拉我的头发了几个小时之后 - 我已经破解了

Right, after hours of pulling my hair out - I've cracked it.

这行:

log4net.Config.XmlConfigurator.Configure();



需要的任何记录之前,把(好,尽可能早地在应用程序)。而已。这是所有花。这是那些问题之一是我非常欣慰,但同时感到沮丧。

Needed putting in prior to any logging (well, as early as possible in the app). That's it. That was all it took. This is one of those problems were I'm extremely relieved but frustrated at the same time.

这篇关于log4net的不写入数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆