2009년 9월 10일 목요일

log4net 세팅

0. 다운로드

http://logging.apache.org/log4net/download.html

 

1. log4net.dll 참조

 

2. app.config 설정

App 인경우 console or file mode

서비스중인경우 database mode로 세팅하면 좋을듯

 

   1: <?xml version="1.0" encoding="utf-8" ?>
   2: <configuration>
   3:     <configSections>
   4:         <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
   5:     </configSections>
   6:  
   7:     <log4net>
   8:         <appender name="Console" type="log4net.Appender.ConsoleAppender">
   9:             <layout type="log4net.Layout.PatternLayout">
  10:                 <conversionPattern value="%d [%t] %-5p %c.%M - %m%n" />
  11:             </layout>
  12:         </appender>
  13:  
  14:         <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
  15:             <file value="../../../logs/log.txt" />
  16:             <appendToFile value="true" />
  17:             <rollingStyle value="Size" />
  18:             <maxSizeRollBackups value="3" />
  19:             <maximumFileSize value="100KB" />
  20:             <staticLogFileName value="true" />
  21:             <layout type="log4net.Layout.PatternLayout">
  22:                 <conversionPattern value="%d [%t] %-5p %c.%M - %m%n" />
  23:             </layout>
  24:         </appender>
  25:  
  26:         <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
  27:             <bufferSize value="1" />
  28:             <connectionType value="System.Data.SqlClient.SqlConnection, System.Data , Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
  29:             <connectionString value="server=192.168.0.100;database=fundstore;user id=sa;password=zhemfjtnl!1" />
  30:             <commandText value="INSERT INTO [Log4net] ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" />
  31:             <parameter>
  32:                 <parameterName value="@log_date" />
  33:                 <dbType value="DateTime" />
  34:                 <layout type="log4net.Layout.RawTimeStampLayout" />
  35:             </parameter>
  36:             <parameter>
  37:                 <parameterName value="@thread" />
  38:                 <dbType value="String" />
  39:                 <size value="255" />
  40:                 <layout type="log4net.Layout.PatternLayout">
  41:                     <conversionPattern value="%thread" />
  42:                 </layout>
  43:             </parameter>
  44:             <parameter>
  45:                 <parameterName value="@log_level" />
  46:                 <dbType value="String" />
  47:                 <size value="50" />
  48:                 <layout type="log4net.Layout.PatternLayout">
  49:                     <conversionPattern value="%level" />
  50:                 </layout>
  51:             </parameter>
  52:             <parameter>
  53:                 <parameterName value="@logger" />
  54:                 <dbType value="String" />
  55:                 <size value="255" />
  56:                 <layout type="log4net.Layout.PatternLayout">
  57:                     <conversionPattern value="%logger" />
  58:                 </layout>
  59:             </parameter>
  60:             <parameter>
  61:                 <parameterName value="@message" />
  62:                 <dbType value="String" />
  63:                 <size value="4000" />
  64:                 <layout type="log4net.Layout.PatternLayout">
  65:                     <conversionPattern value="%message" />
  66:                 </layout>
  67:             </parameter>
  68:             <parameter>
  69:                 <parameterName value="@exception" />
  70:                 <dbType value="String" />
  71:                 <size value="2000" />
  72:                 <layout type="log4net.Layout.ExceptionLayout" />
  73:             </parameter>
  74:         </appender>
  75:  
  76:  
  77:         <root>
  78:             <level value="DEBUG" />
  79:             <appender-ref ref="RollingFileAppender"/>
  80:             <appender-ref ref="Console"/>
  81:             <!--appender-ref ref="AdoNetAppender" /-->
  82:         </root>
  83:     </log4net>
  84: </configuration>

3. 초기화

app 인경우 program.cs 에 web 인경우 global application_start 쯤에

다음코드를 넣는다.

   1: using log4net.Config;
   2:  
   3:     static class Program {
   4:         [STAThread]
   5:         static void Main() {
   6:             XmlConfigurator.Configure();

 

3-1. instance

 

   1: using log4net;
   2:  
   3:     public class Test {
   4:         private ILog log = LogManager.GetLogger(typeof(Test));

 

 

* log4net 을 참조하고 빌드하면,

5메가짜리 System.Web.dll 과 1메가짜리 log4net.xml 이 같이 생성된다.

WM에서는 무시할수 없는 크기인듯....

 

 

 

 

 

 

 

댓글 없음:

댓글 쓰기