使用twisted.python.log日誌

來源:互聯網
上載者:User
使用twisted.python.log日誌

目錄

  • 1   簡單使用

    • 1.1   日誌與twistd
    • 1.2   記錄檔
  • 2   編寫日誌監視器
版本: 2.4.0
翻譯: gashero <harry.python@gmail.com>
1   簡單使用

Twisted提供了一個簡單而且可移植的日誌系統叫做 twisted.python.log 。它包含3個函數:

msg

記錄一條資訊,例如:

from twisted.python import log
log.msg("hello, world")

err

把錯誤寫入日誌,包括traceback資訊。你可以傳遞一個 failure 或者異常的執行個體,甚至什麼都沒有。如果傳遞其他的東西則會通過 repr() 函數獲得字串來顯示。如果什麼都不傳遞則會自動構造一個 Failure 執行個體,一般用於 except 子句:

try:
x=1/0
except:
log.err() #會自動記錄ZeroDivisionError

startLogging

通過一個類似檔案對象來開始日誌,例如:

log.startLogging(open("/var/log/foo.log",'w'))

或者:

log.startLogging(sys.stdout)

預設條件下,startLogging會同時將輸出重新導向到sys.stdout和sys.stderr。你可以在startLogging中設定setStdout=False來禁用這個功能。

1.1   日誌與twistd

如果你使用twistd來運行你的程式作為後台進程,則他會自動裝載startLogging,甚至還會自動輪訓日誌。查看 twistd and tac 一節或twistd的man手冊瞭解更多。

1.2   記錄檔

twisted.python.logfile 模組提供了一些可以同startLogging共同使用的類,例如 DailyLogFile ,提供了以天為單位的日誌輪詢。

2   編寫日誌監視器

日誌監視器是Twisted日誌系統的基礎。一個日誌監視器的例子是供startLogging使用的 FileLogObserver ,可以把事件寫入檔案中。一個日誌監視器是可調用的,並且只接受一次字典作為參數。隨後你可以用它來接收所有的日誌事件(當然也會給其他日誌監視器):

twisted.python.log.addObserver(yourCallable)

字典至少有2個項目:

message

日誌資訊,一個列表或字串,被log.msg或log.err傳遞過來的。

isError

一個布爾值,如果為True時就是從log.err過來的。如果為True說明字典當中還會有個Failure對象。

其他項目是自動被加入的:

printed

這條資訊是從sys.stdout中捕獲的,例如這條資訊是從print輸出的。如果isError同樣為True,則是從sys.stderr來的。

你可以通過 log.msg 或 log.err 傳遞附加項目到事件字典。標準的日誌監視器將會忽略他們不用的字典參數。

Note

注意

  • 不要在日誌監視器中拋出異常,否則會掛掉。
  • 不要在日誌監視器中阻塞,尤其是在主線程中。這將會導致很多問題。
  • 日誌監視器需要安全執行緒。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.