阿里巴巴Java开发手册-日志规约
1.【強制】 應用中不可直接使用日志系統(Log4j、Logback)中的API,而應依賴使用的SLF4j中的API。使用門面模式的日志框架嗎,有利于維護和各個類的日志處理方式統一。
import org.slf4j.Logger;import org.slf4j.LoggerFactory;Logger logger = LoggerFactory.getLogger(JunitTestMyDemo.class);2.【強制】日志文件推薦至少保存15天
3.【強制】日志命名規則:appName_logType_logName.log,logType推薦分為stats、monitor、visit等,logName為日志描述,通過文件名能夠了解到哪個應用、哪個類型、有什么目的,這也有利于遞歸查找。
例子:在搜索應用中單獨監控稿件解析異常,如下:newsSearchServer_monitor_xmlParse.log
說明:推薦對日志進行分類,如將錯誤日志和業務日志分開存放,方便查看
4.【強制】對trace、debug、info級別的日志輸出,必須使用條件輸出形式或者是占位符的方式。
條件輸出
String cnt = "test";if (logger.isDebugEnabled()){logger.debug("debug: " + cnt);}占位符
logger.debug("debug:{}", cnt);5.【強制】防止重復打印日志,日志配置文件中設置additivity=false
子Logger 是否繼承 父Logger 的 輸出源(appender) 的標志位。具體說,默認情況下子Logger會繼承父Logger的appender,也就是說子Logger會在父Logger的appender里輸出。若是additivity設為false,則子Logger只會在自己的appender里輸出,而不會在父Logger的appender里輸出。
6.【強制】異常信息應該包括兩類:案發現場信息和異常堆棧信息,如果不處理,那么通過關鍵字throws往上拋出。
logger.error("各類參數或者對象toString " + e.getMessage(), e);
7.【推薦】禁止輸出debug日志,有選擇輸出info日志,可以使用warn日志記錄用戶輸入參數錯誤情況,避免用戶投訴無所適從
如非必要,請不要在此場景打出error級別,注意日志輸出級別,error級別只記錄系統邏輯出錯、異常等重要的錯誤信息
總結
以上是生活随笔為你收集整理的阿里巴巴Java开发手册-日志规约的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【转载】LinkedHashMap和Ha
- 下一篇: lucene详细说明文档