簡體   English   中英

扭曲的記錄

[英]Twisted logging

我在扭曲的反應堆下運行了3個進程:Orbited,WSGI(運行django)和Twisted自身。

我目前正在使用

log.startLogging(sys.stdout)

當所有日志都指向同一個地方時,洪水太多了。

我從WSGI獲取的一行日志是這樣的:

2010-08-16 02:21:12-0500 [-] 127.0.0.1 - - [16/Aug/2010:07:21:11 +0000] "GET /statics/js/monitor_rooms.js HTTP/1.1" 304 - "http://localhost:11111/chat/monitor_rooms" "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.8) Gecko/20100723 Ubuntu/10.04 (lucid) Firefox/3.6.8"

時間基本上重復兩次。 我想我應該使用自己的格式化程序但不幸的是我無法在twisted的文檔中找到它(在那里沒有任何記錄)

  1. 從3個來源處理日志記錄的最佳方法是什么?
  2. 我將什么kwargs傳遞給twisted.log中的哪個函數來設置我自己的格式化程序(startLogging不包含答案)
  3. 什么是比我建議的更好的解決方案? (我在設置記錄器方面並不是很有經驗。)

您可以使用twisted.python.log.msgsystem關鍵字參數來自定義消息。

假設你有:

log.msg("Service ready for eBusiness!", system="enterprise")

你會得到這樣的記錄輸出:

2010-08-16 02:21:12-0500 [enterprise] Service ready for eBusiness!

然后,您可以讓每個服務將system="wsgi/orbited/..." log.msg system="wsgi/orbited/..."到他們的log.msglog.err調用中。

我上次與Twisted一起工作的時候發現了這個挖掘源。

嘿。 我正在考慮這個問題。 我想出的是一個單獨的Twisted應用程序,它記錄它通過套接字接收的消息。 您可以配置Python日志記錄以發送到套接字,並且可以配置Twisted的日志記錄以發送到Python日志記錄。 因此,您可以將所有內容發送到單個進程(然后使用Python的日志記錄將其記錄到磁盤)。

我在http://www.acooke.org/cute/APythonLog0.html上有一些概念代碼的初步證明

缺少的主要是指出哪個消息來自哪個來源會很好。 不知道如何最好地添加它(一種方法是在三個不同的端口上運行服務,並為每個端口分別使用不同的前綴)。

PS Orbited是如何運作的? 那是我的名單上的......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM