夢想號黃包車wei.lee net-home

          Have my best life at SZ....................

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            6 隨筆 :: 3 文章 :: 6 評論 :: 0 Trackbacks

          一般我們都會使用數據庫和文件作為log的輸出介質,下面是我在項目實踐中總結到的經驗:
          1 .ADONetAppender
          ( 1 )、 MS SQL Server
          define the table such as:
          CREATE TABLE [dbo].[Log] (?
          ?[Id] [int] IDENTITY (1, 1) NOT NULL,
          ?[Date] [datetime] NOT NULL,
          ?????? [Thread] [varchar] (255) NOT NULL,
          ?????? [Level] [varchar] (50) NOT NULL,
          ?????? [Logger] [varchar] (255) NOT NULL,
          ?????? [Message] [varchar] (4000) NOT NULL,
          ?????? [Exception] [varchar] (2000) NULL
          )

          <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>
          ( 2 )、 MS Access? please reference the SDK of Log4net document???
          ( 3 )、 Oracle9i???????????????????????????????????? log4net/release/config-examples.html
          ( 4 )、 Oracle8i
          ( 5 )、 DB2

          2 、 FileAppender
          <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>

          4.? RemotingAppender
          傳送日志事件到達一個特定的接受器,sink定義了這個接受器的地址,lossy定義了沒有丟棄事件,bufferSize 定義了一個black的由95個事件打包發送的,而onlyFixPartialEventData可以忽律一些特定的事件。
          <appender name="RemotingAppender" type="log4net.Appender.RemotingAppender" >
          ?????? <sink value="tcp://localhost:8085/LoggingSink" />
          ?????? <lossy value="false" />
          ?????? <bufferSize value="95" />
          ????? <onlyFixPartialEventData value="true" />
          </appender>

          5.? RollingFileAppender
          由于定義了staticLogFileName 為true,以我的理解就是定位保存的log文件個數為10個(maxSizeRollBackups),同時設定了每個文件的大小為100KB,所以一直都保持有10個文件。RollingStyle設定rolling的觸發器。
          Eg1:
          <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
          ???? <file value="log.txt" />
          ??? <appendToFile value="true" />
          ??? <rollingStyle value="Size" />
          ?? <maxSizeRollBackups value="10" />
          ?? <maximumFileSize value="100KB" />
          ?? <staticLogFileName value="true" />
          ?? <layout type="log4net.Layout.PatternLayout">
          ?? <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> </layout>
          </appender>

          ? eg2:?
          <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
          ?????? <file value="logfile" />
          ?????? <appendToFile value="true" />
          ?????? <rollingStyle value="Date" />
          ?????? <datePattern value="yyyyMMdd-HHmm" />
          ?????? <layout type="log4net.Layout.PatternLayout">
          ????????????? <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
          ?????? </layout>
          </appender>

          eg3:

          <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
          ?????? <file value="logfile" />
          ?????? <appendToFile value="true" />
          ?????? <rollingStyle value="Composite" />
          ?????? <datePattern value="yyyyMMdd" />
          ?????? <maxSizeRollBackups value="10" />
          ?????? <maximumFileSize value="1MB" />
          ?????? <layout type="log4net.Layout.PatternLayout">
          ????????????? <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
          ????? </layout>
          </appender>

          6.? UdpAppender
          可以發送到遠程地址的特定端口
          <appender name="UdpAppender" type="log4net.Appender.UdpAppender">
          ?????? <localPort value="8080" />
          ?????? <remoteAddress value="224.0.0.1" />
          ?????? <remotePort value="8080" />
          ?????? <layout type="log4net.Layout.PatternLayout, log4net">
          ????????????? <conversionPattern value="%-5level %logger [%property{NDC}] - %message%newline" />
          ?????? </layout>
          </appender>?
          log4net?的學習暫時告一段落了,希望能夠進一步對log4j學習,現在我越來越喜歡.net的東西了,再也不會感覺到很別扭!希望自己可以很快地強大起來!!!?

          posted on 2006-03-29 18:22 Wei.Lee 閱讀(1287) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 新丰县| 建阳市| 类乌齐县| 来宾市| 洪江市| 蓬莱市| 曲沃县| 毕节市| 旌德县| 昌都县| 逊克县| 肥西县| 江安县| 咸阳市| 隆化县| 柘荣县| 阳江市| 三穗县| 通江县| 平舆县| 广水市| 南宁市| 平江县| 郧西县| 凤阳县| 榆树市| 双鸭山市| 客服| 普格县| 进贤县| 佛坪县| 无棣县| 九台市| 弥渡县| 南陵县| 来凤县| 广东省| 奎屯市| 延吉市| 武汉市| 陆丰市|