您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關python中寫日志的方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
這篇文章介紹了 Python 的 logging 模塊,包括它的設計以及針對更多復雜案例的適用方法。這篇文章不是寫給開發者的文檔,它更像是一個指導手冊,來說明 Python 的 logging 模板是如何搭建的,并且激發感興趣的人深入研究。
為什么使用 logging 模塊?
也許會有開發者會問,為什么不是簡單的 print 語句呢? Logging 模塊有很多優勢,包括:
多線程支持
通過不同級別的日志分類
靈活性和可配置性
將如何記錄日志與記錄什么內容分離
最后一點,將我們記錄內容從記錄方式中真正分離,保證了軟件不同部分的合作。舉個例子,它允許一個框架或庫的開發者增加日志并且讓系統管理員或負責運行配置的人員決定稍后應該記錄什么。
Logging 模塊中有什么
Logging 模塊完美地將它的每個部分的職責分離(遵循 Apache Log4j API 的方法)。讓我們看看一個日志線是如何通過這個模塊的代碼,并且研究下它的不同部分。
記錄器(Logger)
記錄器是開發者經常交互的對象。那些主要的 API 說明了我們想要記錄的內容。
舉個記錄器的例子,我們可以分類請求發出一條信息,而不用擔心它們是如何從哪里被發出的。
日志記錄
日志記錄是 logging 模塊用來滿足所有需求信息的包。它們包含了需要記錄日志的地方、變化的字符串、參數、請求的信息隊列等信息。
它們都是被記錄的對象。每次我們調用記錄器時,都會生成這些對象。但這些對象是如何序列化到流中的呢?通過處理器!
處理器
處理器將日志記錄發送給其他輸出終端,他們獲取日志記錄并用相關函數中處理它們。
比如,一個文件處理器將會獲取一條日志記錄,并且把它添加到文件中。
標準的 logging 模塊已經具備了多種內置的處理器,例如:
多種文件處理器(TimeRotated, SizeRotated, Watched),可以寫入文件中,
StreamHandler 輸出目標流比如 stdout 或 stderr,
SMTPHandler 通過 email 發送日志記錄,
SocketHandler 將日志文件發送到流套接字,
SyslogHandler、NTEventHandler、HTTPHandler及MemoryHandler等。
關于python中寫日志的方法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。