2013-12-16 5 views
1

파일과 데이터베이스 모두에 로그 데이터를 작성해야하는 웹 API가 있습니다. 그런 설정을 구성 할 수 있습니까? ILoggerRepository을 이해하려고 노력하고 있지만 혼란 스럽습니다. 누군가 구성 방법 및 응용 프로그램에서 사용하는 방법에 대한 정보를 얻을 수 있습니까?log4net에 대한 파일 및 데이터베이스 다중 구성

+0

실행중인 문제에 대해 구체적으로 시도해보십시오. 보시면 많은 예제가 있습니다. 특정 문제에 대해 구체적인 질문을하면 더 나은 응답을 얻을 수 있습니다. –

+0

Log4net 웹 사이트에서 해당 설정에 대한 세부 정보를 제공한다고 생각합니까? – Kelmen

+1

그래,하지만 여러 구성 및 2 개 이상의 구성을 구성하고 파일 구성이나 DB 구성이 필요할 때 "전환"하는 방법에 대해서는 언급하지 않았습니다. – reptildarat

답변

5

동시에 두 개의 다른 스타일 애 퍼처에 쓰고 싶다는 소리가 들립니다.

좋은 소식은 바로 log4Net 라이브러리에 내장되어 있다는 것입니다.

구성 파일을 두 개의 다른 애펜더로 구성하려고합니다. 파일 Appender 및 데이터베이스 appender.

다른 어펜 더의 예는 여기에서 찾을 수 있습니다. http://logging.apache.org/log4net/release/config-examples.html

다음은 함께 채워 넣은 web.config의 예입니다. 당신이 그것을 당신을 위해 일할 수 있도록 조정해야 할 것입니다,하지만 그것은 바로 시작할 수 있습니다.

마지막으로 한 가지 log4net 구성은 web.config에있을 필요는 없지만 IMHO를 사용하면 쉽게 시작할 수 있습니다. web.config가 조금 복잡해지기 시작하면 그것을 깨뜨리는 것에 대해 걱정할 필요가 있습니다.

<configuration> 
    <configSections> 
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> 
    </configSections> 
    <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> 
    </startup> 

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

    <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=[database server];initial catalog=[database name];integrated security=false;persist security info=True;User ID=[user];Password=[password]" /> 
    <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="4000" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%message" /> 
    </layout> 
    </parameter> 
    <parameter> 
    <parameterName value="@exception" /> 
    <dbType value="String" /> 
    <size value="2000" /> 
    <layout type="log4net.Layout.ExceptionLayout" /> 
    </parameter> 
</appender> 

    <root> 
     <level value="INFO" /> 
     <appender-ref ref="AdoNetAppender" /> 
     <appender-ref ref="FileAppender" /> 
    </root> 
    </log4net> 
</configuration> 
관련 문제