日志的介紹

知識鋪墊:在我們日常開發中,其實日志是和我們息息相關的。但可能平常都沒怎么注意到日志相關的知識點,也不怎么關注日志,然后,在生產環境中,日志是必不可少的存在,項目出現問題了都是通過日志來定位問題的。所以學習日志相關的知識點,對我們理解項目和搭建項目都是必不可少的存在。借用一句經典的話? ? "當你開始關注日志的時候,代表你已經不是菜鳥了"

開發中常見的日志類型

調試日志

軟件開發中,我們經常需要去調試程序,做一些信息,狀態的輸出便于我們查詢程序的運行狀況。為了 讓我們能夠更加靈活和方便的控制這些調試的信息,所有我們需要專業的日志技術。java中尋找bug會 需要重現。調試也就是debug 可以在程序運行中暫停程序運行,可以查看程序在運行中的情況。日志主 要是為了更方便的去重現問題。

簡單點說調試日志就是我們程序員自己添加的,用來測試項目的,比如使用system.out.println("測試")來輸出內容,測試項目,這就是調試日志。開發中隨處可見

系統日志

系統日志是記錄系統中硬件、軟件和系統問題的信息,同時還可以監視系統中發生的事件。用戶可以通 過它來檢查錯誤發生的原因,或者尋找受到攻擊時攻擊者留下的痕跡。系統日志包括系統日志、應用程序日志和安全日志。

簡單點說就是就是用于記錄系統信息的,比如一些框架的日志,其他依賴包內置的日志等。像我們運行spingboot項目是,那些輸出的日志信息就可以理解為系統日志

系統日志的價值

系統日志策略可以在故障剛剛發生時就向你發送警告信息,系統日志幫助你在最短的時間內發現問題。 系統日志是一種非常關鍵的組件,因為系統日志可以讓你充分了解自己的環境。這種系統日志信息對于 決定故障的根本原因或者縮小系統攻擊范圍來說是非常關鍵的,因為系統日志可以讓你了解故障或者襲 擊發生之前的所有事件。為虛擬化環境制定一套良好的系統日志策略也是至關重要的,因為系統日志需 要和許多不同的外部組件進行關聯。良好的系統日志可以防止你從錯誤的角度分析問題,避免浪費寶貴 的排錯時間。另外一種原因是借助于系統日志,管理員很有可能會發現一些之前從未意識到的問題,在 幾乎所有剛剛部署系統日志的環境當中。

日志文件

經過前面的介紹,大家應該都明白什么是日志和日志都有那些分類了吧。但有沒想過,目前的日志有些什么問題呢?? ?

答案: 沒有對日志進行持久化,沒有將日志內容保存起來

我們日常的練習都沒有將日志保存的習慣,當然日常練習也沒有必要保存日志。但在正式的項目開發中,將日志保存就很好必要的,因為當我們對項目進行打包部署后,一般就不對項目作修改了,程序會一直運行在服務器,這時候日志持久化的重要性就體現出來了

日志文件就是用于存儲日志的文件,一般來說日志文件都是純文本文件。

JAVA 日志框架

為什么要用日志框架

因為軟件系統發展到今天已經很復雜了,特別是服務器端軟件,涉及到的知識,內容,問題太多。在某 些方面使用別人成熟的框架,就相當于讓別人幫你完成一些基礎工作,你只需要集中精力完成系統的業 務邏輯設計 。而且框架一般是成熟,穩健的,他可以處理系統很多細節問題,比如,事務處理,安全 性,數據流控制等問題。還有框架一般都經過很多人使用,所以結構很好,所以擴展性也很好,而且它 是不斷升級的,你可以直接享受別人升級代碼帶來的好處。

現有的日志框架

JUL(java util logging)、logback、log4j、log4j2

JCL(Jakarta Commons Logging)、slf4j( Simple Logging Facade for Java)

日志門面

JCL、slf4j

日志實現

JUL、logback、log4j、log4j2

JUL是java內置的日志實現;log4j是一個獨立的日志框架,是很多年前的一個框架的,目前基本不使用的,只做了解即可。logback是參考log4j而重新實現的日志框架,目前spingboot的內置日志框架就是logback。log4j2是對log4j,性能上提升很大,性能比logback,目前大型的項目日志框架一般都會選擇log4j2。

日志門面簡單來說就是提供一個統一的接口,讓你去實現。目前slf4j是日常開發中的用得最多得日志門面。基于這個日志門面,項目可以根據自己得需要去切換到不同的日志實現框架。

到這里日志的基本介紹就完成了,后面會介紹日志具體的實現

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/38290.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/38290.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/38290.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

cesium 添加 Echarts 圖層(空氣質量點圖)

cesium 添加 Echarts 圖層(下面附有源碼) 1、實現思路 1、在scene上面新增一個canvas畫布 2、通坐標轉換,將經緯度坐標轉為屏幕坐標來實現 3、將ecarts 中每個series數組中元素都加 coordinateSystem: ‘cesiumEcharts’ 2、示例代碼 <!DOCTYPE html> <html lan…

Excel 數據篩選難題解決

人不走空 &#x1f308;個人主頁&#xff1a;人不走空 &#x1f496;系列專欄&#xff1a;算法專題 ?詩詞歌賦&#xff1a;斯是陋室&#xff0c;惟吾德馨 目錄 &#x1f308;個人主頁&#xff1a;人不走空 &#x1f496;系列專欄&#xff1a;算法專題 ?詩詞歌…

緩存穿透、雪崩與擊穿

緩存穿透、雪崩、擊穿 1、緩存穿透強調都沒有數據并發訪問布隆過濾器緩存NULL值 2、緩存雪崩強調批量Key過期并發訪問 3、緩存擊穿強調單個Key過期并發訪問互斥鎖邏輯過期 分布式并發控制 1、緩存穿透 緩存穿透是指數據庫和緩存都沒有的數據&#xff0c;這樣緩存永遠不會生效&…

圖形化用戶界面-java頭歌實訓

圖形化用戶界面 import java.awt.*; import javax.swing.*; public class GraphicsTester extends JFrame { public GraphicsTester() { super("Graphics Demo"); setSize(480, 300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void paint…

服務器raid5壞盤-換盤-修復陣列過程

目錄 背景原因分析解決步驟名詞解釋進入raid管理界面換回舊4號&#xff0c;進行import再次更換4號盤 總結 背景 服務器除塵之后文件服務器部分文件不能訪問了,部分文件夾內容為空&#xff0c;起初以為是新配置的權限的問題&#xff0c;排查之后發現不僅僅是權限問題 jumpserv…

ISA95-標準2-數據字典部分的解析與設計指南

在 MES/MOM 系統中,ISA-95 第二部分的數據字典扮演著至關重要的角色,它確保了數據的一致性和準確性,為不同系統間的數據交換提供了標準化的術語和定義。以下是 MES/MOM 系統實現 ISA-95 第二部分數據字典的具體概念、功能模塊以及應用場景: 一、概念、功能模塊以及應用場景…

numpy - array(4)

arr1 np.array([[1, 2], [3, 4], [5, 6]]) &#xff08;1&#xff09;def insert(arr, obj, values, axisNone) 向array指定位置插入指定值 axis為默認值None時&#xff0c;如果array是多維數據,則先將array轉化成向量obj&#xff1a;插入的索引&#xff0c;接受int或者多…

VTK學習日志:基于VTK9.3.0+Visual Studio c++實現DICOM影像MPR多平面重建+V R體繪制4個視圖展示功能的實現(二)

前段時間對VTK9.3.0進行了編譯&#xff0c;開發了MPRVR實現的demo,顯示效果不是很理想&#xff0c;正好趁著周末有時間&#xff0c;再度對之前的程序進行優化和完善&#xff0c;先展示下效果&#xff1a; VTK實現MPRVR四視圖 再次講解下基于VTK的MPRVR實現的簡單項目創建過程&a…

linux守護進程生命周期管理-supervisord

簡介 supervisor是一個client/server系統,允許用戶控制多個類unix系統的進程,擺脫rc.d腳本的不方便性.supervisor具有簡單,集中化管理,搞笑,可擴展性,高兼容. 整套軟件包含:supervisord(守護進程),supervisorctl(命令行工具),web server(一個web交互界面),XML-RPC 交互 安裝 …

git回退commit的方式

在Git中&#xff0c;回退commit&#xff08;即撤銷之前的提交&#xff09;可以通過多種方式來實現。以下是一些常見的方法&#xff0c;以及它們的詳細步驟和注意事項&#xff1a; ### 1. 使用git revert命令 git revert命令用于撤銷某次commit&#xff0c;但它并不會刪除該comm…

FFmpeg 硬件編碼加速文檔介紹

介紹 硬件訪問:許多平臺提供了對專用硬件的訪問,這些硬件可以用于執行解碼、編碼或過濾等視頻相關操作。 性能與資源使用:使用硬件可以加快某些操作的速度或減少其他資源(特別是CPU)的使用,但可能會產生不同的結果或質量較低,或帶來在使用純軟件時不存在的額外限制。 硬…

公爹公婆出首付買房,離婚的兒媳婦能分嗎?

小兩口結婚后為了更好地生活打算購房&#xff0c;男方父母幫助支付首付款&#xff0c;后房屋登記在夫妻名下。后兩人因感情不和打算離婚&#xff0c;女方要求按照房屋的現行價值進行分割&#xff0c;能否得到支持&#xff1f;近日&#xff0c;江蘇省南通市中級人民法院對這起離…

【Postman學習】

Postman是一個非常流行的API開發和測試工具&#xff0c;廣泛用于Web服務的開發、測試和調試。它提供了一個圖形界面&#xff0c;允許用戶輕松地構建、發送和管理HTTP(S)請求&#xff0c;同時查看和分析響應。下面是對Postman接口測試工具的詳細解釋&#xff1a; 1. Postman簡介…

Linux安裝Node-RED并實現后臺運行及開機啟動

首先確保系統中已近成功安裝Node.js&#xff0c;并保證需要的合適版本&#xff1a; 關于node.js的安裝可以參考我的另一篇博文:《AliyunOS安裝Node.js》。 然后就可以使用npm工具安裝Node-RED了&#xff0c;很簡單使用如下命令&#xff1a; sudo npm install -g --unsafe-per…

【代碼隨想錄算法訓練Day53】LeetCode 739.每日溫度、LeetCode 496.下一個更大元素、LeetCode 503. 下一個更大元素 II

Day53 單調棧 LeetCode 739.每日溫度 經典的單調棧題目&#xff0c;確實的感受到了單調棧的強大之處。 class Solution { public:vector<int> dailyTemperatures(vector<int>& temperatures) {stack<int> st;vector<int> res(temperatures.size…

php+redis 生成二維碼庫

項目場景&#xff1a; 活動報名二維碼&#xff0c;生成 30W 的二維碼量存放到 redis 中&#xff0c;并通過 redis 讀取&#xff0c;以減輕 mysql 數據庫的壓力。 實現很簡單&#xff0c;分為兩步&#xff1a; 1、生成&#xff1a;通過 for 循環&#xff0c;以集合方式插入到…

MATLAB使用系統辨識工具箱建立PID水溫的傳遞函數系數

概述 利用PID控制水溫&#xff0c;由于實際在工程項目中&#xff0c;手動調節PID參數比較耗費時間&#xff0c;所以可以先利用MATLAB中的Simulink軟件建立模型&#xff0c;先在仿真軟件上調節大概的PID參數&#xff0c;再利用此PID參數為基礎在實際的工程項目中手動調節PID參數…

這些并發編程技術你都知道嗎?

與其碌碌無為&#xff0c;不如興風作浪。 雖然不是所有的系統都需要很多的并發編程技術&#xff0c;但是掌握常見的高并發秘籍&#xff0c;便能讓我們的系統快起來&#xff0c;面對訪問量的劇增從容應對。 接下來&#xff0c;為我們一起來看看常見的高并發技術有哪些。總結起來…

SSH版本升級-openssh-9.7p1

SSH版本升級-openssh-9.7p1 1、查看當前版本2、安裝openssl2.1、編譯安裝ssl 3、下載新版本SSH4、備份原有的SSH配置5、上傳文件并解壓6、卸載原有的openssh包7、編譯安裝openssh7.1、在解壓后的目錄&#xff0c;初始化openssh7.2、將文件拷回7.3、修改配置文件 最終實現&#…

linux系統中給java 應用配置開機自動啟動

第一步需要一個控制java應用啟動&#xff0c;停止&#xff0c;重啟的腳本&#xff0c;腳本內容如下&#xff0c;我是springboot應用&#xff0c;其他的可以根據情況改寫. #!/bin/bashAPP_NAME/data/oa/start-2.0.jar #執行命令有誤時&#xff0c;提示使用說明參數 usage() {ec…