您好,登錄后才能下訂單哦!
這篇文章主要介紹“Java開源日志框架的原理是什么”,在日常操作中,相信很多人在Java開源日志框架的原理是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Java開源日志框架的原理是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
1.開發人員的日志意識
#開發代碼時要有意識的設想代碼出現問題時的場景,針對場景記錄關鍵程序的運行信息,容易定位問題
#打印日志必須包含環境信息,例如用戶ID,角色,參數等
#對異常等錯誤信息必須打印錯誤級別及以上的日志,對線上日志定期檢查
#生產環境將關閉的日志必須在打印日志前進行判斷,以此提高效率、
#必須使用占位符代替字符串鏈接
#對關鍵業務步驟必須打點并記錄耗時和結果
2.日志級別的設置
線上應用info就夠了
*QA測試環境可以使用debug及以下級別
*剛剛上線的項目可使用debug級別
*上線后穩定的應用使用info級別
*常年不出現問題的應用使用error級別
3.日志數量和大小
控制日志的輸出量,避免由于業務上量導致服務器磁盤占滿。
單條打印日志不超過1KB
遇到連續的大日志是可采取拋棄的策略
4.切割方式
cat app.log > app.`date' '+%Y-%m-%d'`.log
cat /dev/null/ >app.log
存儲到日期后綴的日志文件中后,清空當前日志
5.日志格式的配置
例如%p:輸出日志信息的優先級
%d:輸出日志時間點的日期和時間
%t:輸出該日志事件的線程名
6.一行日志導致的線上事故
private void dosomething(...,Map param){
Log.debug("-------");
}
線上服務偶發報NullPointerException,通過堆棧調用,發現他是一個領域模型的toString()方法報出來的
public class DomainObject{
public String toString(){
return "DomainObject" +DomainObject.getId();
}
}
=toString方法在實現時需考慮鏈接字符串可能產生空指針異常,對可能為空的字段進行判斷
=如果沒有進行判空,在toString方法中抓住異常
=在增加打印日志時考慮toString方法是否有傳導性
=一定要在try...finally語句進行資源釋放
=是用緩存儲存數據,確保存入的數據的完整性
=如果對象不大,并不是一個集合類,在toString方法中考慮Json序列化后將對象轉化為字符串
到此,關于“Java開源日志框架的原理是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。