日誌檔案的主要作用是記錄了某個時刻,某個地點發生了什麼!
對乙個程式設計師而言,日誌系統在程式開發、維護的過程中是非常重要的,日誌系統可以幫助我們快速定位程式錯誤發生的時間和位置、以及程式出錯的大致原因。在日誌資訊足夠詳細的前提下,日誌還可以幫助我們分析使用者行為,從而更好地為客戶爸爸們提供精準有效的服務。
礙於伺服器i/o的壓力,不能將所有的記錄都儲存下來,所以需要對日誌等級進行分級,在python中,日誌的級別如下:
上述日誌級別:debug < info < warning < error < critical; 執行程式時,logging會輸出大於等於設定的日誌等級的日誌,比如設定的info,則會輸出info,warning,error, critical;還有系統會自動在控制台輸出大於等於warning的日誌。
除了上述級別之外,python還可以自定義日誌級別,但是不要和系統自帶地日誌級別重複。
import
控制台輸出:
warning:root:warning message
error:root:error message
critical:root:critical message
logging.basicconfig()沒有填入引數,說明程式設計師預設系統設定,所以,日誌將會在控制台輸出,且日誌級別大於等於warning的日誌才會被列印出來。
logging模組的四大元件:
日誌格式如下:
日誌級別:logger例項:日誌訊息
例子:warning: root: warning message
(**kwargs
logging.basicconfig()函式主要用來設定顯示日誌資訊的最小級別、日誌顯示的格式和儲存日誌的位置。
filename: 儲存日誌的檔名
filemode:檔案模式。r:唯讀模式;w:寫模式;a:追加模式
formart:日誌輸出格式
datafat:日誌中檔案輸出格式
level: 日誌輸出級別
例子:
import
在test.log檔案中顯示:
2019-09-01 18:16:10 root:debug:this is a debug message
2019-09-01 18:16:10 root:info:this is an info message
2019-09-01 18:16:10 root:warning:this is a warning message
2019-09-01 18:16:10 root:error:this is an error message
2019-09-01 18:16:10 root:critical:this is a critical message
如果發生異常,使用上述的info,debug...不能將日誌列印至指定位置。可以使用下面的函式
logging
例子:
logging
在text.log檔案中顯示:
(most recent call last
在開發過程中使用上面的方法完全足夠,不過我將在這裡介紹更高階的使用方法。
在python日誌流程中我們介紹了python的四大元件,為了方便,我們在這裡將四大元件及其功能貼上在這裡。
loggers:在python中使用的是單例模式,即我們只是通過乙個介面獲得了乙個loggers物件,且這個物件在系統只有乙個,這個物件就是根物件。
handlers:有時候我們既想讓日誌在控制台上顯示,又想在log檔案中顯示,且顯示的日誌等級不一樣,如何搞定,當然通過handlers搞定。
filters:過濾級別,控制在控制台中或者log檔案中顯示的日誌等級
formartters:日誌輸出的格式。
例子:
import
控制台輸出:
2019-09-01 18:58:36,756 my_logger warning customer warning message
2019-09-01 18:58:36,756 my_logger error customer error message
2019-09-01 18:58:36,756 my_logger critical customer critical message
log檔案輸出:
2019-09-01 18:58:36,756 my_logger debug customer debug message
2019-09-01 18:58:36,756 my_logger info customer info message
2019-09-01 18:58:36,756 my_logger warning customer warning message
2019-09-01 18:58:36,756 my_logger error customer error message
2019-09-01 18:58:36,756 my_logger critical customer critical message
1.python日誌庫logging總結-可能是目前為止將logging庫總結的最好的一篇文章 - 掘金
2.
unity列印日誌到檔案
對於列印日誌到檔案,我們可以選擇使用log4net外掛程式,這個外掛程式有很強大的功能,但是經常我們並不需要這麼多的功能,有時我們可能只想輸出一下異常而已,所以我推薦自己寫dll來實現這個功能。具體做法如下 在vs裡新建類庫專案,貼上下面的 using system.io using unityen...
遍歷日誌檔案並列印
error reporting e all ini set display errors 1 function load file return contents function eliminate lines new dul line return new function qsort arra...
iOS 列印日誌
簡單介紹以下幾個巨集 1 va args 是乙個可變引數的巨集,這個可變引數的巨集是新的c99規範中新增的,目前似乎只有gcc支援 vc6.0的編譯器不支援 巨集前面加上 的作用在於,當可變引數的個數為0時,這裡的 起到把前面多餘的 去掉,否則會編譯出錯。2 file 巨集在預編譯時會替換成當前的源...