Sử dụng Logging trong Python

Ngày 15 tháng 7 năm 2018 | 296 views

code4fun.vn educode.vn

[Python-Ama tơ] - Sử dụng logging trong Python

Sau một thời gian lọ mọ với python, thấy mình sử dụng hàm print() erverywhere. Mọi thứ từ tin nhắn yêu thương đến lỗi rẻ rách..vv cũng bắn ra cái print() cái :). Thế là phải tìm ngay một cách gì đó ngon lành hơn vừa đơn giản nhẹ nhàng, rồi lại còn ghi được file log...vậy là mò ngay ra được cái Module Logging. Làm cái tip cho khỏi quên + phục vụ cộng đồng luôn dù thấy chúng nó viết đầy trên mạng =)).

Module logging là một module tiêu chuẩn có sãn luôn trong gói cái đặt, được cộng đồng phát triển và cực kì dễ sử dụng, linh hoạt.

  • Phân chia level của thông báo, mức độ nghiêm trọng của thông báo: Debug, info, warning, error, critical. Cho phép hiển thị hoặc không hiển thị nội dung thông báo.
  • Cho phép thông báo output ra nhiều dạng khác nhau: Màn hình, File...

DEBUG: Thông tin chi tiết, thường dùng để debug chương trình.

INFO: Thông báo cơ bản, dùng để thông báo chương trình chạy đúng theo kịch bản mong muốn

WARNING: Thông báo cảnh báo, những vấn đề bất thường hoặc lỗi nhưng chương trình vẫn có thể chạy

ERROR: Thông báo lỗi, thường dùng để bắt các exception của chương trình

CRITICAL: Lỗi chương trình nghiêm trọng, và phải dừng chương trình

Sử dụng Logging cơ bản:

import logging
logging.warning('Watch out!')  # sẽ in ra warning trên console
logging.info('I told you so')  # không in gì cả

Mặc định thông báo được đặt ở mức warning, các thông báo mức dưới (debug, info) vì vậy sẽ không được in ra. Muốn thay đổi thì phải set lại thông số logging level

import logging
logging.basicConfig(level=logging.DEBUG)
logging.warning('Watch out!')  # sẽ in ra warning trên console
logging.info('I told you so')  # sẽ in ra warning trên console

Bạn cũng có thể log thông báo ra file:

import logging
logging.basicConfig(filename='runtime.log',level=logging.DEBUG)
logging.debug('This message should go to the log file')
logging.info('So should this')
logging.warning('And this, too')

Nội dung sẽ được xuất ra file giống như xuất ra trên màn hình:

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too

Ngoài ra bạn có thể chỉnh cách log ra file như: ghi đè lên file cũ or ghi nối tiếp vào file đã ghi trước đó bằng cách sử dụng tham số: filemode = a or w

logging.basicConfig(level=logging.DEBUG, filename='runtime.log', filemode='w')

Còn rất nhiều cách sử dụng với module logging, để có thể chuyên sâu hơn các bạn có thể tham khảo tại link module logging

Python 2.7 và Python 3.6 trên Window

Ngày 11 tháng 5 năm 2018

11-05-2018
270
Virtualenv tạo môi trường ảo trong Python

Ngày 30 tháng 11 năm 2017

30-11-2017
922