2013-03-07 3 views
0

VS 2012의 WCF 응용 프로그램에서이 코드를 사용하고 있으며 SQL Express는 2008 R2입니다.log4net은 데이터베이스에 삽입되지 않지만 파일은 정상적으로 작동합니다.

FileAppendor 및 Database Appendor를 포함 시켰습니다. File Appender는 제대로 작동하지만 데이터를 데이터베이스에 삽입하지 않습니다.

동일한 연결 문자열이 잘 작동하는지 확인하고 레코드를 테이블에 삽입했습니다.

또한 나는 1 버퍼 값, 여전히 행운을 설정 한

<bufferSize value="1" /> 

이 내 config 파일

<?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

Finaly 나는 이것에 대한 답을 얻었고, 다른 사람들에게 도움이 될 수 있기 때문에 여기서 공유하고 있습니다.

필요가 시스템을 사용하는/컴퓨터 이름 대신 (로컬) 연결 문자열에. dotnet 응용 프로그램 (로컬)이 작동하더라도 log4net에 시스템 이름을 사용해야합니다.

관련 문제