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

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

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

          Item1#: Repository 組件在不同版本的不同之處?

          Answer :

          Repository 主要是負責對日志對象的組織結構的維護。在 log4net 的以前版本中,框架僅支持分等級的組織結構。這種等級結構本質上是庫的一個實現,并且定義在 log4net.Repository.Hierarchy 名字空間中。要實現一個 Repository ,需要實現 log4net.Repository.ILoggerRepository 接口。現在已經改用 LogManager 類來實現這個功能。

          ?

          Item2#: 日志文件輸出到多個位置的研究(例如:不同介質、同介質不同地方、同介質遠程不同主機)

          Answer :

          日志文件可以輸出到多個不同的介質,例如我們常用的數據庫、文件;同時也可以以一種介質的形式輸出到多個位置;以相同 / 不同的介質形式而保存到相同 / 不同的遠程的主機上。

          下面我們舉例實現同介質遠程不同主機:

          Log4net 使用 RomtingAppender 的形式實現的,以運行程序的主機作為 client ,遠程主機作為 server ,啟動 server 并監聽相應的端口,當 client 觸發相應的事件,就會把 message 發送到 server 主機上, server 主機把收集到的 message 以某種 appender 形式保存。

          具體請參考 log4net 自帶的 sample

          E:\log4.net\incubating-log4net-1.2.9-beta\examples\net\1.0\Remoting

          RemotingClient 程序中相應模擬我們運行的程序,下面我們修改了 App.config 文件實現多個 server 收集信息:

          <? xml version ="1.0" encoding ="utf-8" ?>

          <! --

          ???? .NET application configuration file

          ????

          ???? This file must have the exact same name as your application with

          ???? .config appended to it. For example if your application is testApp.exe

          ???? then the config file must be testApp.exe.config it mut also be in the

          ???? same diectory as the application.

          -- >

          < configuration >

          ???? <! -- Register a section handler for the log4net section -- >

          ???? < configSetions > ?

          ???????? < section name ="log4net" type ="System.Configuration.IgnoreSectionHandler" />

          ???? </ configSertions >

          ???? <! -- This sectin contains the log4net configuration settings -- > ?

          ???? < log4net debug ="false">

          ???????? <! -- Define some output appenders -- >

          ???????? <! -- Use the remoting appender -- >

          ???????? <appender name="RemotingAppender1" type="log4net.Appender.RemotingAppender" >

          ????????????? <! -- The remoting URL to theeremoting server object -- >

          ????????????? <! --sink value="tcp://192.168.0.239:8085/LoggingSink" /-- >

          ????????????? <sink value="tcp://192.168.0.230:8085/LoggingSink" />

          ????????????? <! -- Send all events, do notediscard events when the buffer is full -- >

          ????????????? < lossy value ="false" />

          ????????????? <! -- The numbe of events to buffer before sending -- >

          ????????????? < bufferSize value ="95" />

          ????????????? <! -- Do not store event dataethat is slow to generate -- >

          ????????????? < onlyFixPartialEventData value ="true" />

          ????????????? <! -- Specify an evaluator toesend the events immediatly under

          ????????????? ???? ertain conditions, e.g. when an error event ocurrs -- > T

          ????????????? <! --

          ????????????? <evaluato type="log4net.Core.LevelEvaluator">

          ?????????????????? <threshold value="ERROR"/>

          ????????????? </evaluator>

          ????????????? -- >

          ???????? </ appender >

          ???????? <appender name="RemotingAppender2" type="log4net.Appender.RemotingAppender" >

          ????????????? <! -- The remoting URL to theeremoting server object -- >

          ????????????? <sink value="tcp://192.168.0.239:8085/LoggingSink" />

          ????????????? <! --sink value="tcp://192.168.0.230:8085/LoggingSink" /-- >

          ???????? ???? <! -- Send all events, do notediscard events when the buffer is full -- >

          ????????????? < lossy value ="false" />

          ????????????? <! -- The numbe of events to buffer before sending -- >

          ????????????? < bufferSize value ="95" />

          ????????????? <! -- Do not store event dataethat is slow to generate -- >

          ????????????? < onlyFixPartialEventData value ="true" />

          ????????????? <! -- Specify an evaluator toesend the events immediatly under

          ????????????? ???? Rertain conditions, e.g. when an error event ocurrs -- >

          ????????????? <! --

          ????????????? <evaluato{ type="log4net.Core.LevelEvaluator">

          ?????????????????? <threshold value="ERROR"/>

          ???????? ???? </evaluator>

          ????????????? -- >

          ???????? </ appender > ???????

          ???????? <! -- Setup the root category, add the appenders and set the default priority -- >

          ???????? < root >

          ????????????? < level value ="DEBUG" />

          ????????????? <appender-ref ref="RemotingAppender2" />

          ????????????? <appender-ref ref="RemotingAppender1" />

          ?????????????

          ???????? </ root >

          ???? </ log4net >

          </ configuration >

          同樣我們修改 RemotingServer App.config 文件實現一個 server 上收集的信息以多種介質保存:

          <? xml version ="1.0" encoding ="utf-8" ?>

          < configuration >

          ???? <! -- Register a section handler for the log4net section -- >

          ???? < configSections >

          ???????? < section name ="log4net" type ="System.Configuration.IgnoreSectionHandler" />

          ???? </ configSections >

          ???? <! -- This section contains the log4net configuration settings -- >

          ???? < log4net >

          ???????? < appender name ="ConsoleAppender" type ="log4net.Appender.ConsoleAppender">

          ????????????? < layout type ="log4net.Layout.PatternLayout">

          ?????????????????? < conversionPattern value ="%date [%thread] %-5levele%logger (%property{log4net:HostName}) [%ndc] - %message%newline" />

          ????????????? </ layout >

          ???????? </ appender >

          ???????? < appender name ="LogFileAppender" type ="log4net.Appender.FileAppender">

          ????????????? < file value ="log-file.txt" />

          ????????????? < sppendToFile value ="true" />

          ????????????? < layout type ="log4net.Layout.PatternLayout">

          ?????????????????? < header value ="FILE HEADER&#13;&#10;" />

          ?????????????????? < footer value ="FILE FOOTER&#13;&#10;" />

          ?????????????????? < conversionPattern value ="%date [%thread] %-5levele%logger (%property{log4net:HostName}) [%ndc] - %message%newline" />

          ????????????? </ layout >

          ???????? </ appender >

          ???????? < root >

          ????????????? < level value ="DEBUG" />

          ????????????? < appender-ref ref ="ConsoleAppender" />

          ????????????? < appender-ref ref ="LogFileAppender" />

          ???????? </ root >

          ???? </ log4net >

          ???? < system.runtime.remoting >

          ???????? < application name ="Log4netRemotingServer">

          ????????????? <! -- We need to define the remoting channels on which we will publish

          ?????????? the remote logging sink. -- >

          ????????????? < channels >

          ?????????????????? < channel displayName ="Server Channel" ref ="tcp server" port ="8085" />

          ????????????? </ channels >

          ???????? </ application >

          ???? </ system.runtime.remoting >

          </ configuration >

          ?

          Item3#: Log level Filter level 相互之間的影響,會產生交集嗎?

          Answer :

          Log level 是我們定義 logger 的時候使用的,同時在 logger 定義同時也定義了輸出介質,在每個輸出介質中,我們定義了 Filter Level 來過濾我們不要的信息。所以 log level filter level 是會產生交集的。

          Item4#: [Assembly: log4net.Config.XmlConfigurator(ConfigFile="log4net.config", Watch=true)] 的內部機制

          Answer :

          這個語句我們是使用在項目中的 AssemblyInfo.cs 文件,用來加載我們定義的配置文件到項目中;如果使用項目的默認配置文件 App.config 文件: [Assembly: log4net.Config.XmlConfigurator()]

          ConfigFile 定義了日志配置文件的路徑,Watch定義了檢查配置文件是否有改變。

          ?

          Item5#: 日志輸出格式的問題,有沒有輔助工具可以對 ?log 的內容進行提取和過濾。

          (例如:對 log? 文件進行過濾,是開發人員獲得各自所負責模塊的信息)

          Answer :

          ?

          ?

          ?

          posted on 2006-05-08 19:16 Wei.Lee 閱讀(855) 評論(0)  編輯  收藏 所屬分類: Dot Net 技術

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


          網站導航:
           
          主站蜘蛛池模板: 五原县| 台安县| 揭东县| 福泉市| 沙洋县| 偏关县| 蓬莱市| 延长县| 宝清县| 常宁市| 克什克腾旗| 竹溪县| 石嘴山市| 莱州市| 会泽县| 若尔盖县| 巴里| 英吉沙县| 皋兰县| 綦江县| 漳州市| 隆化县| 江孜县| 龙南县| 瓦房店市| 岫岩| 蒲城县| 黑龙江省| 井陉县| 奉新县| 比如县| 龙游县| 威远县| 乌鲁木齐县| 三亚市| 定西市| 木里| 宜君县| 贞丰县| 尉犁县| 通渭县|