• 招生咨詢熱線:4008-569-579 
  • 手機(jī)版
    用手機(jī)掃描二維碼直達(dá)商品手機(jī)版
招生咨詢熱線
4008-569-579
機(jī)構(gòu)主頁 > 培訓(xùn)資料 > Java培訓(xùn):Java 日志記錄 — 記錄什么和不記錄什么?
機(jī)構(gòu)主頁 > 培訓(xùn)資料>Java培訓(xùn):Java 日志記錄 — 記錄什么和不記錄什么?

Java培訓(xùn):Java 日志記錄 — 記錄什么和不記錄什么?

來源:廣州達(dá)內(nèi)教育        時(shí)間:2023-05-30        熱度:25℃        返回列表

  日志是發(fā)現(xiàn)錯(cuò)誤和調(diào)試代碼的便捷工具。除了日志的功能方面,從 Java 安全的角度來看,日志也很重要,

當(dāng)發(fā)生安全漏洞時(shí),你的日志文件是尋找所發(fā)生事件線索的第一個(gè)位置。想了解有關(guān)Java

日志記錄更多詳細(xì)信息,建議參加Java培訓(xùn),通過系統(tǒng)全面的學(xué)習(xí),可以快速提升自己。


  日志的質(zhì)量至關(guān)重要。從 Java 安全的角度來看,記錄太多或太少的信息都可能是災(zāi)難性的。 在本文中,我將引導(dǎo)你通過一種實(shí)用的

Java 日志記錄方法——我們應(yīng)該記錄什么,我們不應(yīng)該記錄什么。


  我們應(yīng)該記錄什么?


  這是誰干的?識(shí)別發(fā)出此請(qǐng)求的用戶或系統(tǒng)。如果可能,使用用戶 ID 和 IP 地址。


  到底是怎么回事?這是什么日志語句。許多開發(fā)人員已經(jīng)認(rèn)識(shí)到不同的日志級(jí)別來注釋消息的重要性(ERROR、WARN、INFO、DEBUG、TRACE)。區(qū)分功能日志記錄、安全日志記錄,甚至審計(jì)日志記錄(如果適用)是明智的。


  在哪發(fā)生的?確定位置。你通常為每個(gè)類定義一個(gè)記錄器,所以這已經(jīng)是一個(gè)好的開始。但是,我們也需要知道具體的方法。此外,我們想知道特定的節(jié)點(diǎn),例如,如果你正在使用微服務(wù)架構(gòu)。


  它是什么時(shí)候發(fā)生的?時(shí)間是必不可少的,因此請(qǐng)確保記錄時(shí)間戳。請(qǐng)注意時(shí)區(qū)差異,更重要的是,每年更改兩次時(shí)區(qū)。我的建議是始終以

UTC 輸出,所以每個(gè)人都很清楚。在java培訓(xùn)中,不僅有理論知識(shí)的課程,還有大量實(shí)戰(zhàn)項(xiàng)目學(xué)習(xí),讓你在實(shí)踐中真正掌握J(rèn)ava

日志記錄知識(shí)和技能。


  為什么會(huì)這樣?

“為什么”通常是你需要找出的。你不能總是在一條日志中捕捉到這一點(diǎn)。在某些情況下,這是顯而易見的。如果是這樣,請(qǐng)將其作為消息的一部分。很多時(shí)候,只有看到日志之間的關(guān)系,我們才能解釋“為什么”。因此,請(qǐng)確保你的日志消息絕對(duì)清晰。


  這是怎么發(fā)生的?就像“為什么”一樣,“如何”通常不能在一個(gè)陳述中被抓住。因此,消息之間的關(guān)聯(lián),尤其是在基于服務(wù)的架構(gòu)中,是極其重要的。為此,你應(yīng)該為每個(gè)具有出站接口的服務(wù)中的每個(gè)傳入請(qǐng)求創(chuàng)建一個(gè)唯一的關(guān)聯(lián)

ID。獲得此 ID 后,應(yīng)將其記錄在每個(gè)語句中。如果你需要將此 ID 傳輸?shù)搅硪粋€(gè)服務(wù),你可以使用特定的 HTTP 標(biāo)頭 X-Correlation-ID

來關(guān)聯(lián)并保持無狀態(tài)。




  我們不應(yīng)該記錄什么?


  記錄太多信息與記錄太少一樣有害。你不希望你的日志被在生產(chǎn)中無用的信息淹沒。因此,應(yīng)始終將生產(chǎn)系統(tǒng)上的日志級(jí)別設(shè)置為合適的級(jí)別,例如 WARN

或 ERROR。


  作為開發(fā)的一部分,工程師將記錄可能包含個(gè)人數(shù)據(jù)的敏感實(shí)體,以便調(diào)試應(yīng)用程序。盡管我們應(yīng)該致力于防止這種情況發(fā)生,但內(nèi)部調(diào)試消息應(yīng)該具有適當(dāng)?shù)娜罩炯?jí)別——例如,DEBUG

或 TRACE——并且不應(yīng)該在生產(chǎn)環(huán)境中可見。想要快速學(xué)會(huì)Java

日志記錄技巧,建議報(bào)名參加java培訓(xùn),有明確清晰的學(xué)習(xí)路線,系統(tǒng)規(guī)范的課程,專業(yè)講師面授指導(dǎo)教學(xué),可以在短時(shí)內(nèi)獲得很大提升。


  作為一般規(guī)則,應(yīng)用程序不應(yīng)泄露任何特定于應(yīng)用程序或特定于用戶的數(shù)據(jù)——攻擊者可以使用這些數(shù)據(jù)。此外,通過暴露個(gè)人信息,你很可能不符合隱私法規(guī)。即使只有內(nèi)部人員可以訪問日志,這也是單點(diǎn)故障。因此,我們根本不希望這些信息落入壞人之手。


  開發(fā)時(shí),請(qǐng)考慮你需要記錄的內(nèi)容。我們是否需要記錄內(nèi)部 ID、未加密密碼或某人的信用卡詳細(xì)信息?注意不要在 Java

中輸出完整的數(shù)據(jù)對(duì)象,因?yàn)檩敵鋈Q于該特定對(duì)象的 toString() 方法。


  通過記錄個(gè)人信息以進(jìn)行調(diào)試,我們規(guī)避了我們自己的許多安全策略——不完全記錄這些類型的信息是明智的。如果我們需要記錄特定數(shù)據(jù),請(qǐng)確保設(shè)置正確的日志級(jí)別,例如

DEBUG。你還應(yīng)該將生產(chǎn)系統(tǒng)的日志級(jí)別設(shè)置為更高的級(jí)別,例如 WARN。


  日志記錄不是你只需要做的事情。

仔細(xì)查看你記錄的內(nèi)容、記錄時(shí)間和使用日志,對(duì)于進(jìn)行快速研究或干預(yù)至關(guān)重要。盡管預(yù)防勝于治療,但總有可能有人破壞了你的系統(tǒng),而你希望防止進(jìn)一步的損害。對(duì)于初學(xué)者來說,參加java培訓(xùn)是一個(gè)很好的學(xué)習(xí)方法,有明確清晰的學(xué)習(xí)路線,有系統(tǒng)全面的教學(xué)課程,可以讓你在短時(shí)間內(nèi)學(xué)有所成,快速上崗。

電話咨詢

電話咨詢

咨詢電話:
4008-569-579
回到頂部

回到頂部