Thu thập log của Flask với Logentries

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, 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 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.pysecret.py ở trên).

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:


Hello world

Hello,

Today I start new blog system, to replace my old blogs at My Opera and Wordpress, and also to possess a website with my own domain name.

This website is started as a blog, but I have been planning to add something fun to it. The idea has existed long time ago, but because of lack of money and time, I could not start the work until now.

Well, people may say that there are many good blogging system out there, with the most noteworthy Wordpress, why not just pick one and place in some shared host, which is rather cheap and doesn't take long time. The reason why I don't do is that I want to code some features by my own. I no longer like PHP, instead I prefer Python, so I don't want to code for Wordpress. Besides, I want to write about programming (primary in Python, of course), Linux, Open source, so I want the blog system to support code highlighting, and support to write in Markdown or reStructedText, which is my new choice of writing format. Wordpress is a good platform and revolve so fast that all plugins of my need (Markdown, code highlighting) become incompatible with newest version of Wordpress.