作為一名經(jīng)驗(yàn)豐富的java開發(fā)人員,你應(yīng)該了解可用的不同日志框架、常見陷阱和最佳實(shí)踐,當(dāng)然,還應(yīng)該了解常見部署場(chǎng)景中使用的日志文件類型。在本文中,會(huì)將告訴你在幾乎所有開發(fā)或生產(chǎn)環(huán)境中都可以找到的4種不同類型的日志。想學(xué)習(xí)java的同學(xué)可以參加java培訓(xùn),在專業(yè)老師的帶領(lǐng)下,可以獲得快速提升。
1.應(yīng)用程序日志
大多數(shù)開發(fā)人員在談到日志時(shí)都會(huì)想到這個(gè)日志。原因很簡(jiǎn)單。他們的應(yīng)用程序生成此日志。它包含應(yīng)用程序編寫的各種錯(cuò)誤消息、警告或其他事件。這些消息可以提供與特定用例相關(guān)的邏輯、高級(jí)信息。典型示例如下:
l 用例中發(fā)生的異常的堆棧跟蹤。
l 有關(guān)外部系統(tǒng)響應(yīng)時(shí)間慢的警告消息。
l 觸發(fā)或完成用例的信息。
應(yīng)用程序日志可能是本文中提到的最重要的日志類型,因?yàn)槟憧梢酝耆刂扑?。這意味著你負(fù)責(zé)編寫消息。
2.Web和應(yīng)用程序服務(wù)器日志
大多數(shù)企業(yè)應(yīng)用程序都部署到web服務(wù)器(例如Apache Tomcat)或應(yīng)用程序服務(wù)器(例如Wildfly或WebSphere Liberty)。他們的日志文件為你提供有關(guān)技術(shù)問題和服務(wù)器當(dāng)前狀態(tài)的信息。在java培訓(xùn)中,有更加系統(tǒng)全面的課程,明確清晰的學(xué)習(xí)路線,學(xué)習(xí)起來既輕松,又高效。
每臺(tái)服務(wù)器的配置和功能各不相同。但請(qǐng)確保檢查服務(wù)器的文檔并進(jìn)行相應(yīng)配置。從服務(wù)器獲取正確的信息可以在及時(shí)發(fā)現(xiàn)潛在問題和服務(wù)器停機(jī)之間產(chǎn)生差異。
3.垃圾收集器日志
垃圾收集器提供自動(dòng)內(nèi)存管理。它跟蹤JVM中實(shí)例化的所有對(duì)象,并刪除不再使用的對(duì)象。這是一項(xiàng)非常復(fù)雜的任務(wù),有幾種不同的垃圾收集器實(shí)現(xiàn)。
通常,Java中的垃圾收集過程非常有效。它的效率如此之高,以至于有許多應(yīng)用程序使用默認(rèn)實(shí)現(xiàn)及其標(biāo)準(zhǔn)配置。但是,如果應(yīng)用程序必須處理高負(fù)載或使用大量復(fù)雜的對(duì)象結(jié)構(gòu),則應(yīng)用程序的性能可能會(huì)隨著時(shí)間的推移而降低。當(dāng)垃圾收集器需要花費(fèi)越來越多的時(shí)間來管理可用內(nèi)存時(shí),通常會(huì)發(fā)生這種情況。垃圾收集器日志為你提供分析所有垃圾收集器活動(dòng)所需的信息。想學(xué)習(xí)java更多技能,建議參加java培訓(xùn),課程實(shí)時(shí)更新,緊跟市場(chǎng)和企業(yè),讓你學(xué)到最新的java技能,提高市場(chǎng)競(jìng)爭(zhēng)力。
默認(rèn)情況下,垃圾收集器日志被停用。你需要使用一組命令行屬性來激活它。用命令行屬性啟動(dòng)應(yīng)用程序后,垃圾收集器將會(huì)寫下所有操作的詳細(xì)信息。但是,生成的垃圾收集器日志的內(nèi)容和格式取決于JVM的供應(yīng)商和版本以及垃圾收集算法。
4.系統(tǒng)日志
前面討論的所有日志都是由JVM或在JVM中運(yùn)行的應(yīng)用程序編寫的。除了這些日志,你還應(yīng)該熟悉操作系統(tǒng)編寫的日志。
作為Java開發(fā)人員,你很可能永遠(yuǎn)不會(huì)自己寫入這些日志。但你的操作系統(tǒng)會(huì)將某些事件寫入這些日志。作為部署一部分的其他應(yīng)用程序也可以做到這一點(diǎn)。因此,系統(tǒng)日志是獲取外部事件概覽的好地方。
如果你在Windows上運(yùn)行應(yīng)用程序,這是事件日志。在Linux上,你應(yīng)該了解syslog服務(wù)及其后續(xù)服務(wù)。
Windows事件日志
Windows的事件日志包含應(yīng)用程序、安全、設(shè)置、系統(tǒng)和轉(zhuǎn)發(fā)事件類別中的重要硬件和軟件事件。在java培訓(xùn)中,培訓(xùn)課程不僅注重理論,更注重項(xiàng)目的實(shí)戰(zhàn)能力,能夠讓你快速適應(yīng)企業(yè)開發(fā)的進(jìn)度,成為企業(yè)所需要的java人才。
特別是應(yīng)用程序和系統(tǒng)類別的事件有助于了解發(fā)生在應(yīng)用程序之外的事件。應(yīng)用程序類別包含本地Windows系統(tǒng)上運(yùn)行的其他應(yīng)用程序報(bào)告的事件。硬件和驅(qū)動(dòng)程序相關(guān)事件屬于系統(tǒng)類別。
Linux系統(tǒng)日志記錄
Linux的syslog服務(wù)及其繼任者提供了一個(gè)高度可配置的日志系統(tǒng)。它將應(yīng)用程序或操作系統(tǒng)觸發(fā)的消息寫入文件或發(fā)送到遠(yuǎn)程系統(tǒng)。
使用的日志記錄服務(wù)及其配置取決于你的Linux發(fā)行版。請(qǐng)查看文檔以了解有關(guān)特定操作系統(tǒng)的更多信息。
結(jié)論
日志記錄是軟件開發(fā)中的一個(gè)重要主題,特別是當(dāng)你需要分析生產(chǎn)環(huán)境中的錯(cuò)誤和其他意外事件時(shí)。實(shí)現(xiàn)日志記錄通??雌饋砗苋菀?。但正如你可能親身經(jīng)歷的那樣,日志記錄遠(yuǎn)比看起來復(fù)雜得多。對(duì)java日志記錄感興趣的同學(xué),可以參加Java培訓(xùn)來獲得知識(shí)和技能,以便快速上崗。