【问题标题】:log4net not inserting into database but working fine for filelog4net 未插入数据库但对文件工作正常
【发布时间】:2013-03-07 09:01:12
【问题描述】:

我在 VS 2012 的 WCF 应用程序中使用此代码,SQL Express 是 2008 R2。

我已经包含了 fileAppendor 和 Database Appendor,File Appender 工作正常,但它没有将数据插入数据库。

我已经验证了相同的连接字符串可以正常工作并将记录插入到表中。

我也将缓冲区值设置为 1,仍然没有运气

<bufferSize value="1" />

这是我的配置文件

    <?xml version="1.0"?>
<configuration>

  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>    

  <log4net>

    <appender name="AdoNetAppender" 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="server=(local)\\SQLEXPRESS;database=Log_DB;Integrated Security=SSPI;Connection Timeout=360;" />
      <connectionString value="data source=[(local)\\SQLEXPRESS];initial catalog=[Log_DB];integrated security=SSPI" />

      <commandText value="INSERT INTO [Error_Log] ([Date_time] ) VALUES (@Date_time)" />
      <parameter>
        <parameterName value="@Date_time" />
        <dbType value="DateTime" />
        <!--<layout type="log4net.Layout.RawTimeStampLayout" />-->
        <layout type="log4net.Layout.PatternLayout" value="%date{yyyy'-'MM'-'dd HH':'mm':'ss'.'fff}" />
      </parameter>
             </appender>

    <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
       <file value="log-file.txt"/>
      <appendToFile value="true"/>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%ndc] ID=%property{EventID} - %message%newline" />
      </layout>
    </appender>

    <!-- Setup the root category, add the appenders and set the default level -->
    <root>
      <level value="ALL" />
      <appender-ref ref="LogFileAppender" />
      <appender-ref ref="AdoNetAppender" />
    </root>
  </log4net>


  <appSettings>
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
    <add key="log4net.Internal.Debug" value="true"/>
  </appSettings>
 ...

</configuration>

我是否遗漏了任何其他内容?

另外,通过将 Internal.Debug 设置为 true,我没有获得任何信息。 如何获取 log4net 的内部调试信息?

【问题讨论】:

    标签: wcf log4net


    【解决方案1】:

    我终于得到了这个答案,我在这里分享,因为它可以帮助其他人。

    需要在连接字符串中使用 系统/机器名称 而不是 (local)。即使使用 dotnet 应用程序(本地)工作,但对于 log4net 需要使用系统名称。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-05
      • 2017-12-10
      • 2018-01-20
      • 1970-01-01
      • 1970-01-01
      • 2019-01-10
      相关资源
      最近更新 更多