2015-03-31 60 views
0

我想創建一致日誌,以便我可以在每個龍捲風請求計算統計數據,我有如下要求:分配進程ID異步請求龍捲風

@tornado.web.asynchronous 
    def post(self): 
    try: 
     process_id = uuid.uuid4() 
     logging.info("Incoming request (process_id: %s) to %s" % (str(process_id), self.__class__.__name__)) 

這將打印一些信息時,請求到達,但請求獲取龍捲風代碼完成,這將只打印:

[I 150331 10:55:09 web:1728] 200 POST /transform (127.0.0.1) 3017.19ms 

有沒有辦法通過我的進程id龍捲風(或使其創建一個),這樣我就可以連接請求的第一個和最後一個日誌事件?

感謝,

+0

你可以將它添加到self.request? – 2015-03-31 10:20:42

回答

0

在一般情況下,最好的方式來記錄這樣的事情是將它連接到RequestHandler實例。對於日誌記錄,您可以覆蓋可以訪問處理程序的Application.log_request。如果您需要在多個位置使用此代碼,則可能需要將代碼ID或RequestHandler實例傳遞給代碼的其他部分。

如果你確實需要這種普遍性,但使用StackContext可能會很棘手,但是明確地傳遞它可能是最好的。