成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用logzero在Python中進行簡單日志記錄

開發 后端
logzero 庫使日志記錄就像打印語句一樣容易,是簡單性的杰出代表。我不確定 logzero 的名稱是否要與 pygame-zero、GPIO Zero 和 guizero 這樣的 “zero 樣板庫”契合,但是肯定屬于該類別。它是一個 Python 庫,可以使日志記錄變得簡單明了。

[[317742]]

快速了解一個方便的日志庫,來幫助你掌握這個重要的編程概念。

logzero 庫使日志記錄就像打印語句一樣容易,是簡單性的杰出代表。我不確定 logzero 的名稱是否要與 pygame-zero、GPIO Zero 和 guizero 這樣的 “zero 樣板庫”契合,但是肯定屬于該類別。它是一個 Python 庫,可以使日志記錄變得簡單明了。

你可以使用它基本的記錄到標準輸出的日志記錄,就像你可以使用 print 來獲得信息和調試一樣,學習它的更高級日志記錄(例如記錄到文件)的學習曲線也很平滑。

首先,使用 pip 安裝 logzero:

  1. $ sudo pip3 install logzero

在 Python 文件中,導入 logger 并嘗試以下一個或所有日志實例:

  1. from logzero import logger
  2.  
  3. logger.debug("hello")
  4. logger.info("info")
  5. logger.warning("warning")
  6. logger.error("error")

輸出以易于閱讀的方式自動著色:

 

Python, Raspberry Pi: import logger

因此現在不要再使用 print 來了解發生了什么,而應使用有相關日志級別的日志器。

在 Python 中將日志寫入文件

如果你閱讀至此,并會在你寫代碼時做一點改變,這對我就足夠了。如果你要了解更多,請繼續閱讀!

寫到標準輸出對于測試新程序不錯,但是僅當你登錄到運行腳本的計算機時才有用。在很多時候,你需要遠程執行代碼并在事后查看錯誤。這種情況下,記錄到文件很有幫助。讓我們嘗試一下:

  1. from logzero import logger, logfile
  2.  
  3. logfile('/home/pi/test.log')

現在,你的日志條目將記錄到文件 test.log 中。記住確保腳本有權限寫入該文件及其目錄結構。

你也可以指定更多選項:

  1. logfile('/home/pi/test.log', maxBytes=1e6, backupCount=3)

現在,當提供給 test.log 文件的數據達到 1MB(106 字節)時,它將通過 test.log.1test.log.2 等文件輪替寫入。這種行為可以避免系統打開和關閉大量 I/O 密集的日志文件,以至于系統無法打開和關閉。更專業一點,你或許還要記錄到 /var/log。假設你使用的是 Linux,那么創建一個目錄并將用戶設為所有者,以便可以寫入該目錄:

  1. $ sudo mkdir /var/log/test
  2. $ sudo chown pi /var/log/test

然后在你的 Python 代碼中,更改 logfile 路徑:

  1. logfile('/var/log/test/test.log', maxBytes=1e6, backupCount=3)

當要在 logfile 中捕獲異常時,可以使用 logging.exception

  1. try:
  2.     c = a / b
  3. except Exception as e:
  4.     logger.exception(e)

這將輸出(在 b 為零的情況下):

  1. [E 190422 23:41:59 test:9] division by zero
  2.      Traceback (most recent call last):
  3.        File "test.py", line 7, in
  4.          c = a / b
  5.      ZeroDivisionError: division by zero

你會得到日志,還有完整回溯。另外,你可以使用 logging.error 并隱藏回溯:

  1. try:
  2.     c = a / b
  3. except Exception as e:
  4.     logger.error(f"{e.__class__.__name__}: {e}")

現在,將產生更簡潔的結果:

  1. [E 190423 00:04:16 test:9] ZeroDivisionError: division by zero

 

Logging output

你可以在 logzero.readthedocs.io 中閱讀更多選項。

logzero 為教育而生

對于新手程序員來說,日志記錄可能是一個具有挑戰性的概念。大多數框架依賴于流控制和大量變量操作來生成有意義的日志,但是 logzero 不同。由于它的語法類似于 print 語句,因此它在教育上很成功,因為它無需解釋其他概念。在你的下個項目中試試它。 

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2021-08-27 14:36:01

主題建模BerTopic

2019-04-18 09:15:05

DaskPython計算

2023-10-18 18:31:04

SQL查詢數據

2023-08-02 08:02:30

Redis數據原生方法

2024-05-06 13:34:28

WireGoogleGo

2020-06-30 08:23:00

JavaScript開發技術

2009-06-22 10:29:11

集成測試Spring

2011-08-01 10:41:59

Xcode 條件編譯

2009-12-28 13:59:12

ADO調用存儲過程

2021-03-24 09:30:02

Jupyter not單元測試代碼

2009-03-03 09:00:57

Silverlight數據驗證UI控件

2020-08-11 13:00:34

GNU bcLinuxShell

2010-03-30 18:48:24

Oracle 學習

2012-04-09 13:39:37

ibmdw

2025-02-10 10:29:32

2023-06-08 14:10:00

VSCodePython代碼

2011-11-30 15:18:06

JavaJBossJ2EE

2016-08-22 11:46:53

GitLinux開源

2009-12-11 09:43:43

靜態路由配置

2021-04-16 20:46:21

PythonXGBoost 特征
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美日韩中文国产一区发布 | 粉嫩av久久一区二区三区 | 国产精品a久久久久 | 欧美性猛交一区二区三区精品 | 天堂av中文 | 色约约视频 | 亚洲欧美一区二区在线观看 | 龙珠z国语版在线观看 | 日本在线视频一区二区 | 精品蜜桃一区二区三区 | 久久久xxx | 国产精品久久久久久久久久免费 | 自拍偷拍第一页 | 国产精品久久久久一区二区三区 | 午夜久久久久久久久久一区二区 | 色视频一区二区 | 国产美女网站 | 欧美日韩精品一区二区三区四区 | 国产美女一区二区三区 | 国产98色在线 | 日韩 | julia中文字幕久久一区二区 | av在线免费观看网址 | 天天综合天天 | 国产精品国产三级国产aⅴ无密码 | 欧美国产日本一区 | 91精品国产色综合久久不卡98口 | 日本黄视频在线观看 | 久久久久亚洲精品 | 亚洲一区二区不卡在线观看 | 日韩视频在线播放 | 亚洲欧美激情精品一区二区 | 午夜成人免费视频 | 国产精品精品 | 视频1区2区 | 91精品国产色综合久久 | 久久国产精品一区二区三区 | 国产日韩欧美中文字幕 | 国产黄色av网站 | 第四色狠狠 | 亚洲国产欧美精品 | 中文字幕第一页在线 |