<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    張昊

    J-Hi(http://www.j-hi.net)

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      45 Posts :: 1 Stories :: 110 Comments :: 0 Trackbacks

    系統日志就是記錄管理員或用戶對系統的歷史操作信息,比如管理員添加或者修改、刪除一個角色,這些操作都可以記錄到系統日志表中,管理員可以通過“系統管理系統日志”菜單查詢詳細的日志信息。

    系統日志的配置大致包括兩個方面:系統日志緩存配置和系統日志類型配置,此兩項配置信息在WEB-INF/config/appContext.xml

    ²        系統日志緩存配置:

    系統產生的日志默認不是立即存入數據庫的,而是存入日志緩存中,緩存中的日志信息達到設定的緩存策略時,系統將緩存中的日志信息存入數據庫,緩存策略配置目前支持按照緩存大小、時間、日志條數設置

    appContext.xml文件中找到如下配置

    <bean id="cacheProcessor" class="org.hi.base.sysapp.interceptor.LogSizeCacheProcessor">

               <property name="size" value="10"/>

    </bean>

    此處是按照緩存大小設置的緩存策略,此處的緩存大小設置的值為10M

    此行代碼下方有兩個類似的被注釋的配置如下:

    <!--

    <bean id="cacheProcessor" class="org.hi.base.sysapp.interceptor.LogTimerCacheProcessor">

        <property name="period" value="1"/>

    </bean>

    <bean id="cacheProcessor" class="org.hi.base.sysapp.interceptor.LogLengthCacheProcessor">

        <property name="length" value="10"/>

    </bean>

    -->

    此處兩項配置也是緩存策略的設置,第一項配置是按照時間設置緩存策略,此處的時間值為1分鐘,第二項配置是按照日志條數設置緩存策略,此處的日志條數值為10

    注意:以上三項配置只能保留一項,也就是說當系統運行時只能選擇一種日志緩存策略

    ²        系統日志類型配置:

    系統日志類型根據操作的不同大概分為四種:添加和更新操作、刪除操作、查詢操作、其他操作,此四種類型分別對應于WEB-INF/config/appContext.xml配置文件中的四項配置

    添加和更新操作

    <bean id="saveLogAnalysisor" class="org.hi.base.sysapp.interceptor.LogSaveAnalysisor"/>

    刪除操作

    <bean id="removeLogAnalysisor" class="org.hi.base.sysapp.interceptor.LogRemoveAnalysisor"/>

    查詢操作

    <bean id="searchLogAnalysisor" class="org.hi.base.sysapp.interceptor.LogSearchAnalysisor"/>

    其他操作

    <bean id="noknowLogAnalysisor" class="org.hi.base.sysapp.interceptor.LogNoknowAnalysisor"/>

    系統運行時,管理員可以根據關注的日志類型選擇其中的一項或者多項,選擇好后將其配置到以下代碼處:

    <bean id="methodLogInterceptor" class="org.hi.base.sysapp.interceptor.MethodLogInterceptor">

               <property name="saveProcessor" ref="saveProcessor"/>

               <property name="cacheProcessor" ref="cacheProcessor"/>

               <property name="unincludeMethodNames">

                   <value>getEnumerations</value>

               </property>

               <property name="analysisors">

                   <list><!—- 此處配置日志類型 -->

                      <ref bean="saveLogAnalysisor"/>

                      <ref bean="removeLogAnalysisor"/>

                      <ref bean="noknowLogAnalysisor"/>

                   </list>

               </property>

    </bean>

    管理員可以將關注的日志類型添加到<property name="analysisors">下的<list>標簽下,上面的代碼配置了三項日志類型,即添加和更新操作、刪除操作、其他操作產生的日志將會被記錄到數據庫,不建議將查詢操作日志類型添加進去,因為查詢操作將會產生大量日志,不便于管理員找到自己關注的日志內容,另外也會在較短時間內占用大量的數據庫空間。

    設計分析:通過上面的配置文件可以看出,系統日志的設計思想通過Spring的方法攔截器(methodLogInterceptor),該攔截器又分大的三個部分,保存處理器(saveProcessor);緩存處理器(cacheProcessor);日志分析器(analysisors)。保存處理器,的工作是將日志保存到指定的持久化介質中例如數據庫表或是XML等,目前平臺缺省提供的是保存到數據庫表中,當然您也可以通過實現接口的方式自由控制日志保存的位置;緩存處理器,日志不是每生產一條就做一次保存的,而是通過緩存批量將日志信息保存起來,緩存處理器就是來完成日志的緩存功能,目前平臺提供3種緩存機制;日志分析器,因為數據的增刪查改等操作的描述信息各不相同,所以日志分析器的作用是分析日志數據的描述格式以方面管理員閱讀日志。對于日志的處理流程來看,當調用某個業務層方法時日志的方法攔截器就是攔截住該方法,首先通過方法的類型調用相應日志分析器分析出日志描述信息與格式,然后將日志放到緩存中,緩存處理器會根據相應的觸發條件,如果滿足條件就調用保存處理器將日志信息批量保存起來。




                                               注:該文檔由J-Hi愛好者"刀刀"提供,他的QQ號為150380807,歡迎大家與他在技術上多多交流

    posted on 2011-03-30 20:51 張昊 閱讀(1875) 評論(2)  編輯  收藏

    Feedback

    # re: J-Hi對系統日志的設計思想與設計原理 2011-04-11 10:41 darkbluefeeling
    攔截器做日志看起來很美,但實際使用中會遇到很多問題吧?

    我們以前拿spring的auto-proxy做過類似的,非常之難以控制,入侵性太大。我覺得再山寨一個springside的起步框架,不如做通用服務使用范圍更廣。

    比如日志:可以提供一個API,當某個項目需要使用日志時,引入jar包,配置服務,然后直接調用,不用管日志寫到了那兒。api將日志通過網絡寫到一個通用平臺系統中。如果需要查詢日志,則到一個這個平臺,統一查看和管理。以后,包括日志的自動歸檔,升級,日志統計與分析等等,都不需要每個項目配置一堆東西了。這種方式,不用提供基礎代碼讓項目改(如果項目多了就容易亂),而是直接讓他減少掉一個模塊。以后維護,升級等等都更方便。

    比如這樣:http://www.guzzservices.com/category/developer-guide/

      回復  更多評論
      

    # re: J-Hi對系統日志的設計思想與設計原理 2011-04-11 12:32 張昊
    @darkbluefeeling
    我不知道您對J-Hi了解多少,不過有一點可以肯定,J-Hi不是springside,在整體設計上也沒有參考springside。  回復  更多評論
      


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


    網站導航:
     
    主站蜘蛛池模板: 亚洲人成777在线播放| 亚洲av无码成人影院一区| 国产成人免费片在线视频观看| 久久久国产精品福利免费| 国产精品亚洲色图| 中国亚洲呦女专区| 亚洲第一精品电影网| 亚洲日本va在线视频观看| 一本久到久久亚洲综合| 成人au免费视频影院| 四虎免费影院ww4164h| 久久久久国产精品免费免费不卡| 免费看一级一级人妻片| 国产精品亚洲精品久久精品 | 亚洲av无码一区二区三区天堂| 亚洲网址在线观看你懂的| 亚洲精品V欧洲精品V日韩精品| 亚洲免费一区二区| 亚洲 综合 国产 欧洲 丝袜| 日本高清免费不卡视频| 天天摸夜夜摸成人免费视频| 久久电影网午夜鲁丝片免费| 国产香蕉免费精品视频| 2021国内精品久久久久精免费| 可以免费观看的国产视频| 二个人看的www免费视频| 国产乱子伦精品免费视频| 曰韩无码AV片免费播放不卡| 未满十八私人高清免费影院| 四虎精品免费永久免费视频| 老外毛片免费视频播放| 免费一级毛suv好看的国产网站| www亚洲精品久久久乳| 国产亚洲高清在线精品不卡| 国产亚洲精品精品精品| 深夜福利在线视频免费| 国产免费福利体检区久久| 成全视频高清免费观看电视剧| 免费在线中文日本| 亚洲高清视频免费| 毛片大全免费观看|