2013-03-07 80 views
0

我在VS 2012中的WCF應用程序中使用此代碼,SQL Express是2008 R2。log4net沒有插入數據庫,但對文件工作正常

我已經包含了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的內部調試細節?

回答

1

最終我得到了答案,我在這裏分享,因爲它可以幫助別人。

在連接字符串中需要使用系統/機器名稱而不是(本地)。即使使用dotnet應用程序(本地)工作,但對於log4net,也需要使用系統名稱。