--- title: Thu thập log của Flask với Logentries date: 2013-12-08 11:57:38.524934 UTC --- [logentries.com](https://logentries.com/) là 1 dịch vụ phân tích, trích xuất thông tin từ log của các ứng dụng. Các log được thu thập và gửi đến server của _logentries_ và được xử lý tại đó. Các log này có thể được thu gom ngay từ chương trình đang chạy của chúng ta mà không phải sinh ra file rồi thu thập file đó. Để làm được việc này, _logentries_ cung cấp 1 số thư viện của những ngôn ngữ hay dùng, để ta có thể tích hợp vào ứng dụng của mình. Trang web của tôi cũng đang thí nghiệm với dịch vụ này, mặc dù nhu cầu sử dụng cũng chỉ đơn giản là muốn có 1 nơi lưu trữ log, để debug ứng dụng web, chứ không cần phân tích gì. Sau đây là cách tôi sử dụng với [Flask](http://flask.pocoo.org/), framework được dùng để xây dựng nên website. Theo cách tổ chức của tôi thì tôi sẽ có 1 file `config.py` chứa các thông tin cấu hình. Vì source code của website được [public](https://bitbucket.org/hongquan/quanweb) nên những thông tin cần bảo mật (key, password...) được lưu trong file `secret.py` không public và được import vào _config.py_. Sau khi đăng ký account trên logentries.com và tạo 1 thư mục trên đó, tôi copy lấy token của thư mục đó và gán cho hằng `LOGENTRIES_TOKEN` trong `config` (_config.py_ và _secret.py_ ở trên). Vì _logentries_ chỉ nhằm dùng khi chạy ở production mode (chứ ở development mode thì log luôn ra Terminal cho tiện làm việc) nên tôi sẽ cấu hình để sử dụng _logentries_ trong file _wsgi.py_, là file mà tôi dùng để chạy website ở production. Đây là nội dung của file: ```python import logging from logentries import LogentriesHandler from cherrypy import wsgiserver from quanweb import app from quanweb.config import LOGENTRIES_TOKEN ADDRESS = '127.0.0.1' PORT = 2750 handler = LogentriesHandler(LOGENTRIES_TOKEN) app.logger.addHandler(handler) logging.getLogger('sqlalchemy').addHandler(handler) d = wsgiserver.WSGIPathInfoDispatcher({'/': app}) server = wsgiserver.CherryPyWSGIServer((ADDRESS, PORT), d) if __name__ == '__main__': try: server.start() except KeyboardInterrupt: server.stop() ``` _Ghi chú_: Cần cài gói `logentries`, là thư viện thu thập và upload log dành cho Python. Có thể cài qua `pip` như sau: ``` sudo pip install logentries ```