在項目中的約定this
生產環境禁止直接使用 System.out 或 System.err 輸出日誌或使用 e.printStackTrace() 打印異常堆棧. 因爲標準日誌輸出與標準錯誤輸出文件每次 Jboss 重啓時才滾動, 若是大量輸出送往這兩個文件, 容易形成文件大小超過操做系統大小限制.操作系統
輸出的 POJO 類建議重寫 toString 方法,有利於在debugger過程當中,查看對象信息.debug
能夠使用 warn 日誌級別來記錄用戶輸入參數錯誤的狀況, 避免用戶投訴時, 無所適從. 注意日誌輸出的級別,error 級別只記錄系統邏輯出錯、異常、或者重要的錯誤信息. 如非必要, 請不要在此場景打出 error 級別, 避免頻繁報警.日誌
異常和日誌code
反例:拋出異常,則不須要記錄logger,交給相應的ExceptionHandler記錄日誌信息對象
try { service.start(); }catch(Exception e){ logger.error("error Msg :{}", e.getMessage()); throw new RuntimeException("error Msg", e.getMessage()); }
正例:拋出異常,記錄出錯信息的堆棧信息,exception要放在參數末尾get
try { service.start(); }catch(Exception e){ logger.info("error Msg :{}",ex.getMessage(), e); } //參數列表中包含異常,異常會將堆棧信息打印出來 private void initThrowable(final Object[] params, final int usedParams) { if (params != null) { final int argCount = params.length; if (usedParams < argCount && this.throwable== null && params[argCount - 1] instanceof Throwable){ this.throwable = (Throwable) params[argCount - 1]; } } }