2015-01-19 2 views
-2

데이터베이스에 로그인하기 위해 log4net을 구성하려고하는데 이미 파일에 쓰기 위해 구성되어 있지만 데이터베이스에 appender를 변경하면 아무것도 수행하지 않습니다. 암호를 변경하면 암호가 잘못되었다는 이벤트 뷰어의 항목을 볼 수 있기 때문에 데이터베이스 연결이 정상입니다. 여기 내 app.config입니다 :데이터베이스에 쓰도록 log4net 구성

<log4net> 
    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date{ABSOLUTE} [%thread] %level %logger - %message%newlineExtra Info: %property{testProperty}%newline%exception"/> 
     </layout> 
     <filter type="log4net.Filter.LevelRangeFilter"> 
     <levelMin value="INFO"/> 
     <levelMax value="FATAL"/> 
     </filter> 
    </appender>  
    <securitycontext type="log4net.Util.WindowsSecurityContext"> 
     <credentials value="Process"> 
     </credentials> 
    </securitycontext> 
    <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=PCKMA0348\SQLEXPRESS;initial catalog=dbServicesLog;User ID='rb';Password='Test1234';multipleactiveresultsets=True;App=EntityFramework" providerName="System.Data.SqlClient" /> 
     <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="2000" /> 
     <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%message" /> 
     </layout> 
     </parameter> 
     <parameter> 
     <parameterName value="@exception" /> 
     <dbType value="String" /> 
     <size value="1000" /> 
     <layout type="log4net.Layout.ExceptionLayout" /> 
     </parameter> 
    </appender> 
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
     <file value="mylogfile.txt" /> 
     <appendToFile value="true" /> 
     <rollingStyle value="Size" /> 
     <maxSizeRollBackups value="5" /> 
     <maximumFileSize value="10MB" /> 
     <staticLogFileName value="true" /> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %level %logger - %message%newline" /> 
     </layout> 
    </appender> 
    <root> 
     <level value="FATAL"/> 
     <appender-ref ref="AdoNetAppender"/> 
    </root> 
    <logger name="Log4NetTest.OtherClass"> 
     <level value="DEBUG"/> 
     <appender-ref ref="AdoNetAppender"/> 
    </logger> 
    </log4net> 

아무 것도 없습니까? 데이터베이스와 테이블을 수동으로 만들어야합니까, 아니면 자동으로 만들어야합니까?

+1

예를, 데이터베이스와 테이블을 수동으로 생성해야합니다. – Filburt

+0

그게 다야! 지금 일하고있다. 짜증나는 것은 어떤 오류도주지 않는다는 것입니다 ... – Bonomi

답변

2

데이터베이스와 로그 테이블을 직접 만들어야합니다. 당신이 log4net와 가능한 문제를 진단하려면

, 당신은 당신의 .config 파일에이를 추가하여 진단 추적을 만들 수 있습니다

<system.diagnostics> 
    <trace autoflush="true"> 
    <listeners> 
     <add 
     name="textWriterTraceListener" 
     type="System.Diagnostics.TextWriterTraceListener" 
     initializeData="C:\whatever\your\path\is\log4net.txt" /> 
    </listeners> 
    </trace> 
</system.diagnostics> 

및 디버그 스위치를 추가 :

<appSettings> 
    <add key="log4net.Internal.Debug" value="true"/> 
</appSettings> 
관련 문제