我想使用mongodb或redis爲金字塔/掛架上的用戶保留日誌,但無法找到有關創建middeware的文檔。我該如何解決它?如何爲金字塔/塔架2編寫日誌記錄中間件?
4
A
回答
8
斯坦達特中間件
class LoggerMiddleware(object):
'''WSGI middleware'''
def __init__(self, application):
self.app = application
def __call__(self, environ, start_response):
# write logs
try:
return self.app(environ, start_response)
except Exception, e:
# write logs
pass
finally:
# write logs
pass
在金字塔創建應用程序的代碼:
from paste.httpserver import serve
from pyramid.response import Response
from pyramid.view import view_config
@view_config()
def hello(request):
return Response('Hello')
if __name__ == '__main__':
from pyramid.config import Configurator
config = Configurator()
config.scan()
app = config.make_wsgi_app()
# Put middleware
app = LoggerMiddleware(app)
serve(app, host='0.0.0.0')
2
找不到任何文檔完全是不可思議,因爲日誌模塊的Python文檔是非常詳細和完整的:
http://docs.python.org/library/logging.html#handler-objects
你需要實現自己的MongoDBHandler,並附上EMIT()方法MongoDB 通過pymongo。
+0
雅,我不是太擔心記錄的一部分,但試圖FIGUR EOUT在哪裏把傳銷 – Timmy 2011-02-08 18:05:59
1
在這種情況下,另一種選擇是在所有不使用中間件,只是在金字塔使用BeforeRequest事件。
from pyramid.events import NewRequest
import logging
def mylogger(event):
request = event.request
logging.info('request occurred')
config.add_subscriber(mylogger, NewRequest)
+0
請求後是否有事件?我想記錄日誌,但不會延遲響應 – Timmy 2011-02-09 19:10:17
相關問題
- 1. 金字塔日誌記錄
- 2. OpenShift金字塔日誌記錄到文件
- 3. 寫入與金字塔和rq相同的日誌文件
- 4. 金字塔架構遷移
- 5. 異常日誌記錄在主塔
- 6. 金字塔登錄用戶
- 7. 金字塔
- 8. 金字塔subrequests
- 9. 金字塔,由
- 10. 金字塔
- 11. 金字塔:sqlalchemy.exc.OperationalError
- 12. 如何在金字塔
- 13. 使用SQLAlchemy進行金字塔異常日誌記錄 - 未提交的命令
- 14. 爲金字塔添加自定義日誌處理程序
- 15. 如何Todo塔/金字塔插件系統?
- 16. 在金字塔中使用金字塔認證
- 17. 爲金字塔中的sqlalchemy模型編寫測試用例
- 18. 關於金字塔
- 19. 獲取金字塔
- 20. 獲取金字塔
- 21. 金字塔pserve比/
- 22. 如何檢查金字塔(塔2)中授權失敗的權限?
- 23. 金字塔:如何添加記錄到數據庫?
- 24. 金字塔啓動腳手架錯誤
- 25. 用金字塔框架搜索
- 26. 金字塔AuthTktAuthenticationPolicy與其他框架
- 27. 金字塔在java中
- 28. Spotfire中創建金字塔
- 29. 金字塔在Java中
- 30. 數字金字塔Python編號
我可以把這個響應之後發生,因此它的數據提供給用戶儘快? – Timmy 2011-02-09 19:07:51