python日誌在哪,python怎麼生成日誌

本文目錄一覽:

Python日誌模塊介紹

logging 模塊預定義了5種日誌級別,並根據它們所跟蹤的事件的級別或嚴重程度來命名,具體如下:

注意:

Logger 對象有三個功能:

Logger 對象的使用最廣泛的方法主要是:配置和記錄消息

當配置了 Logger 對象後,就可以使用 Logger.debug() , Logger.info() , Logger.warning , Logger.error , Logger.critical() 方法來創建日誌消息,只需將需要記錄的消息寫進括號內即可

Handler 對象負責將日誌消息(基於日誌消息的嚴重性)分派給處理器的指定目標。在上一步中提到,可以使用 Logger.addHandler() 來添加零個或多個處理器對象。例如,算法可以將所有日誌消息都發送到控制台,將 ERROR 或者更高級別的消息發送到磁盤文件。這就需要兩個單獨的處理器。

處理器有很多 種類 ,常用的主要有以下幾種:

Formatter 對象是用來配置日誌消息的最終輸出形式。其格式由 %(dictionary key)s 這樣的表達形式來組合成字符串。例如:

其中,可以設置的dictionary key可參考 LogRecord屬性

配置完後,我們就可以在我們算法想要進行日誌記錄的地方調用 Logger.debug() , Logger.info() , Logger.warning , Logger.error , Logger.critical() 來進行日誌輸出了。比如:

當運行算法時,你會看到控制台輸出以下內容

在 python 項目中如何記錄日誌

寫本文的目的是我在寫 python 項目的時候需要記錄日誌,我忘記怎麼處理了,每次都需要去網上查一遍, 好記性不如爛筆頭 , 這裡把查閱的內容記錄下來,方便以後查找。

python 項目中記錄日誌,可以使用 logging 模塊,logging 模塊定義的函數和類為應用程序和庫的開發實現了一個靈活的事件日誌系統。logging 模塊是Python的一個標準庫模塊,由標準庫模塊提供日誌記錄API的關鍵好處是所有Python模塊都可以使用這個日誌記錄功能。所以,你的應用日誌可以將你自己的日誌信息與來自第三方模塊的信息整合起來。

在 __init__.py 文件中做如下配置:

控制台輸出日誌如下:

參考文檔

Python日誌—Python日誌模塊logging介紹

從事與軟件相關工作的人,應該都聽過「日誌」一詞。

日誌就是跟蹤軟件運行時事件的方法,為了能夠在程序運行過程中記錄錯誤。

通過日誌記錄程序的運行,方便我們查詢信息,以便追蹤問題、進行維護和調試、還是數據分析。

並且各編程語言都形成了各自的日誌體系和相應的框架。

日誌的作用總結:

首先我們要樹立一個觀點,那就是「不是為了記錄日誌而記錄日誌,日誌也不是隨意記的」。要實現能夠只通過日誌文件還原整個程序執行的過程,達到能透明地看到程序里執行情況,每個線程每個過程到底執行結果的目的。日誌就像飛機的黑匣子一樣,應當能夠復原異常的整個現場乃至細節。

在項目中,日誌這個功能非常重要,我們要重視起來。

在Python中,使用logging模塊來進行日誌的處理。

logging是Python的內置模塊,主要用於將日誌信息進行格式化內容輸出,可將格式化內容輸出到文件,也可輸出到屏幕。

我們在開發過程中,常用print()函數來進行調試,但是在實際應用的部署時,我們要將日誌信息輸出到文件中,方便後續查找以及備份。

在我們使用日誌管理時,我們也可以將日誌格式化成Json對象轉存到ELK中方便圖形化查看及管理。

logging模塊將日誌系統從高向低依次定義了四個類,分別是logger(日誌器)、handler(處理器)、filter(過濾器)和formatter(格式器)。其中由日誌器生成的實例將接管原本日誌記錄函數logging.log的功能。

說明:

我們先來思考下下面的兩個問題:

在軟件開發階段或部署開發環境時,為了儘可能詳細的查看應用程序的運行狀態來保證上線後的穩定性,我們可能需要把該應用程序所有的運行日誌全部記錄下來進行分析,這是非常耗費機器性能的。

當應用程序正式發佈或在生產環境部署應用程序時,我們通常只需要記錄應用程序的異常信息、錯誤信息等,這樣既可以減小服務器的I/O壓力,也可以避免我們在排查故障時被淹沒在日誌的海洋里。

那麼怎樣才能在不改動應用程序代碼的情況下,根據事件的重要性或者稱之為等級,實現在不同的環境中,記錄不同詳細程度的日誌呢?

這就是日誌等級的作用了,我們通過配置文件指定我們需要的日誌等級就可以了。

說明:

總結:

開發應用程序時或部署開發環境時,可以使用DEBUG或INFO級別的日誌獲取儘可能詳細的日誌信息,可以方便進行開發或部署調試。 應用上線或部署生產環境時,應用使用WARNING或ERROR或CRITICAL級別的日誌,來降低機器的I/O壓力和提高獲取錯誤日誌信息的效率。 日誌級別的指定通常都是在應用程序的配置文件中進行指定的。 不同的應用程序所定義的日誌等級會有所差別,根據實際需求來決定。

linux python 日誌在哪

現在有test.py程序要後台部署, 裏面有輸出內容

使用命令:

nohup python -u test.py test.log 21

最後的表示後台運行

2 輸出錯誤信息到提示符窗口

1 表示輸出信息到提示符窗口, 1前面的注意添加, 否則還會創建一個名為1的文件

最後會把日誌文件輸出到test.log文件

查看

tail -f test.log如果要實時查看日誌文件使用命令

cat test.log查看全部輸出使用命令

python之三方庫日誌

程序調試

了解程序運行是否正常

故障分析與問題定位

用戶行為分析

DEBUG最詳細的日誌信息,典型應用場景是:問題診斷

INFO 信息詳細程度僅次於DEBUG,通常只記錄關鍵節點信息,用於確認一切都是按照我們預期的那樣進行工作。

WARNING當某些不期望的事情發生時記錄的信息(如,磁盤可用空間較低),但是此時應用程序還是正常運行的。

ERROR由於一個更嚴重的問題導致某些功能不能正常運行時記錄的信息。

CRITICAL當發生嚴重錯誤,導致應用程序不能繼續運行時記錄的信息。

logging日誌實例:

在log1.log中顯示錯誤日誌:

2021-1-31 14:44:42 PM-root-INFO-02:option correct

2021-1-31 14:44:45 PM-root-INFO-02:option correct

2021-1-31 14:44:47 PM-root-ERROR-02:Must input a digit

2021-1-31 14:44:50 PM-root-ERROR-02:Must input a digit

2021-1-31 14:46:17 PM-root-ERROR-02:Must input a digit

第一種方式是使用logging提供的模塊級別的函數 。

第二種方式是使用logging日誌系統的四大組件。

python 服務器日誌記錄在哪

日誌文件對象配置的時候,是要填日誌文件的位置的啊,我都是按項目要求放置的。 默認的沒有研究過。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/272157.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-17 00:08
下一篇 2024-12-17 00:08

相關推薦

  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智能、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • Python編程二級證書考試相關現已可以上網購買

    計算機二級Python考試是一項重要的國家級認證考試,也是Python編程的入門考試。與其他考試一樣,Python編程二級證書的考生需要進入正式考試,而為了備考,這篇文章將詳細介紹…

    編程 2025-04-29
  • Python字符串寬度不限制怎麼打代碼

    本文將為大家詳細介紹Python字符串寬度不限制時如何打代碼的幾個方面。 一、保持代碼風格的統一 在Python字符串寬度不限制的情況下,我們可以寫出很長很長的一行代碼。但是,為了…

    編程 2025-04-29
  • 蝴蝶優化算法Python版

    蝴蝶優化算法是一種基於仿生學的優化算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化算法Python版…

    編程 2025-04-29

發表回復

登錄後才能評論