業務知識 Logger日誌列印規範

2021-08-20 02:19:11 字數 2069 閱讀 8951

初期,我們的系統比較簡單,在這個過程中,加上大家平時都不注意,所以logger日誌一直是列印的隨心所欲,什麼是隨心所欲的,就是大家想在**打日誌就在**列印日誌,想輸出什麼就輸出什麼,毫無規範可言,在系統的流量和業務量變得越來越複雜的情況下,良好的日誌才能幫助我們更快地找到問題,更好地解決問題。

首先來看一下比較常用的logger日誌級別(部分未列出):

error- 執行期錯誤日誌記錄,應該有專門的error日誌檔案。;

warn- 警告資訊,如程式呼叫了乙個即將作廢的介面,介面的不當使用,執行狀態不是期望的但仍可繼續處理等;

info- 有必要的事件資訊記錄。

debug- 除錯資訊,業務處理進行狀態,當前的變數值等;

trace- 一些更詳細的跟蹤資訊;

鑑於我們是乙個金融系統,流量還是不算很大,我個人認為debug級別和info級別可以統一歸為info級別下列印,這是考慮到現在系統穩定性不夠,處於乙個快速迭代開發的過程中,線上問題可能隨時都有,所以將業務流轉與部分變數值列印出來還是很有必要的。error記錄錯誤日誌,但如果錯誤是預期會發生的,並且已經有了其他的處理流程,則建議使用warn級別。例如在try-catch中catch塊裡處理後繼續流程的日誌記錄。

1.logger物件的定義:

private static final logger logger = logge***ctory.getlogger(test.class);
2.日誌中不出現計算或方法呼叫,防止在列印日誌的時候報錯。

之前在上家公司的時候就確實出現過因列印日誌而系統runtimeexception的,不應該出現。

3.try-catch如果往外丟擲,則不應該列印異常資訊。

try  catch (exception e)
這樣的處理解釋不合適的,因為丟擲去的異常,一般情況下你肯定會記錄。(當然如果你不記錄,那麼我就搞不懂為什麼你要丟擲去了)。

4.如何列印error log

log.error("************", e);
logger.error("******", e.getstacktrace());
可以是可以,這種列印出來的stacktrace比較醜。。。用一下你就知道。

log4j、log4j2的原始碼中對於異常exception的處理時這樣的。

所以【佔位符小於實際的引數數量時會把最後乙個設定為throwable】,即可以正常列印error。

log.error("************{}","第乙個引數" e); //可以正常列印

log.error("************{},{}","第乙個引數" e); //不能正常列印,因為佔位符和引數數量一樣

private void initthrowable(final object params, final int argcount, final int usedparams)  else 

}

5.日誌記錄建議用英文(這點沒有依據)。

用中文除了占用大點好像沒什麼不好,但是還是建議用字母。

6.http請求時應該列印 url ,param, get/post,statuscode,ret,timeused等關鍵字段。

反正我吃過沒列印這些的虧,還不是我寫的**。說出來都是淚。

7.相對6,別人呼叫介面的時候應列印 入參,請求用時,返回值,**等關鍵字段。

8.分支流程如果必要再外層列印引數,可以知道具體走了哪個流程。

以上都是日常工作的痛點,希望自己可以在今後工作中也以此為標準。

支付業務知識

銀行是直接面對使用者,比如訪問rmb業務。銀聯是乙個資訊平台,提供各家銀行的對接埠實現跨行交易的中轉。跨行訪問款 刷pos機消費扣去的手續費,由發卡行 銀聯 收單行按照7 2 1來分成,有一定壟斷性質。1 先作為使用者及商戶體驗了解第三方支付平台在整個交易過程中的角色及作用 商戶涉及簽約 系統接入 ...

drp業務知識

size medium table a 本模組主要是物流方面的問題處理。在整個系統中,它歸結為庫存管理。每個分銷商都有乙個期初庫存。整個系統啟用後,主要就是物料 藥品 的出入庫 庫存調整過程。後者的操作步驟為 商務主管收集流向單 含出庫 入庫 資料錄入員錄入流向單資料,商務主管審核 如有數量差異,可...

業務知識學習(1)

1.電網和配電網的區別?主網是指110kv及其以上電壓等級的電網,主要起連線區域高壓 220kv及以上 電網的作用 配電網是指35kv及其以下電壓等級的電網,作用是給城市裡各個配電站和各類用電負荷供給電源 2.一次裝置和二次裝置區別?一次裝置是指直接與高壓側有關的所有裝置,如變壓器,隔離開關,斷路器...