工作中面臨日誌問題以及自己現有日誌的備份,記錄備份

來源:互聯網
上載者:User

工作中面臨日誌問題以及自己現有日誌的備份,記錄備份

    問題的產生,必有其理由。說白點也就是客戶需要,沒辦法的事。不過也到給我們添了不少麻煩。本人也希望大牛們能給在下提提更多的思路,在下在此謝過。

    具體是這樣:

     1.要記錄操作人員,操作時間,操作相應模組

         2.要記錄操作的未經處理資料(ps:列層級)和變更後資料

    面臨問題:

         1.各個方法相對獨立,沒有公用介面

         2.形參順序不一,類型不一以及方法名稱不一

 針對以上,要是解決其實也很簡單,主要不怕麻煩。寫個介面,每個模組去調用,這種簡單而且有效方法。不過模組太多而且繁瑣這要累死個人。

   目前就我自己發現以及朋友提醒再加上資料等資訊,大致將其分為2類,共四種方法:

   第一類(每個相關業務中需要手工添加執行功能部分):

        1.寫日誌操作類,在相關模組中添加此介面調用。這種方法比較簡單,如果一開始就有這部分代碼,那就更好解決了。此種方法自不必多說,跟正常介面一樣。

        2.利用訊息中介軟體,2和1實作類別似,也需要每次都調用jms,不過論效能2比1好點

        3.利用log4j日誌記錄,相關請看:http://blog.csdn.net/ziruobing/article/details/3919501,logback也有相關

    第二類(使用Aop,攔截器等):

   1.Aop,該實現思路@BussAnnotation註解可以標示相關商務資訊(ps:新增,刪除,修改等操作,以及所屬模組等資訊,aop中形參ProceedingJoinPoint可以擷取參數對象

      @Component("userManager")

 

   public class UserManagerApplogicImpl implements UserManagerApplogic {
    @BussAnnotation(moduleName="人員管理",option="添加使用者")
    public void addUser(String name) {
      System.out.println("add a User!Name is "+name);
    }
   }

 

  @Aspect
  @Component
  public class LogInterceptor {
    @Pointcut("execution(public * com.mlliud..*.addUser(..))")
    public void aApplogic() {}
    @Around(value = "aApplogic() && @annotation(annotation) &&args(object,..) ", argNames = "annotation,object")
    public Object interceptorApplogic(ProceedingJoinPoint pj,BussAnnotation annotation, Object object) throws Throwable {
      System.out.println("moduleName:"+annotation.moduleName());
      System.out.println("option:"+annotation.option());
      pj.proceed();
      return object;
    }
  } 

      2.攔截器,這個簡單日誌還好,其他目測算了吧。個人愚笨只有想到根據訪問連結記錄一些日誌。

      看來以上問題,針對我們項目做分析。得出一下結論:

           1.第一類在項目初期考慮或者有相關需求還好,涉及每個模組相關代碼都要改,可以手工加入。要是項目結構複雜或者代碼量較多,我覺得很坑.....

           2.第二類aop中@BussAnnotation註解雖然可以標示些關鍵資訊,但是我們畢竟要把整個vo的相關變更資訊記錄。由於當時參數沒有特殊規範,以及類型沒有規劃,造成ProceedingJoinPoint擷取參數沒有規律可尋,例如:addUser(User u,int a),updateUser(User u,String x) 這種我擷取第一個參數,往資料庫中存就可以。其他你懂的....

           3.攔截器....

     寫此篇文章希望各位大神能給咱提下想法,尋找更好方法....

        也希望在此宣傳下群:189770377  希望各位大神能夠入住,多多提出好的想法。也希望學弟學妹們,能夠在此得到好的方向.

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.