0
0
Lập trình
NM

Xây Dựng Module Logger Tùy Chỉnh Bằng Python Không OOP

Đăng vào 6 tháng trước

• 4 phút đọc

Mục Lục

  • Giới thiệu
  • Tính năng
  • Ví dụ thực tế
  • Cách sử dụng
  • Bộ công nghệ
  • Lộ trình phát triển
  • Tài nguyên tham khảo
  • Thực tiễn tốt nhất
  • Các cạm bẫy thường gặp
  • Mẹo hiệu suất
  • Giải quyết sự cố
  • Câu hỏi thường gặp

Giới thiệu

Bài viết này trình bày về một module ghi log tùy chỉnh được xây dựng từ đầu bằng Python, sử dụng lập trình thủ tục. Module này cung cấp một cách có cấu trúc, mở rộng và nhẹ nhàng để ghi lại, định dạng và lưu trữ các thông điệp log qua nhiều định dạng đầu ra khác nhau (console, file và database).


Tính năng

Những điểm nổi bật chính của Logger Python của ESTROSEC:

  • Ghi log nhiều loạiTRACE, DEBUG, INFO, SUCCESS, WARNING, ERROR, FATAL
  • Ghi log nhiều mức độALL, HIGH, MEDIUM, LOW
  • Ghi log nhiều đầu raConsole, File, SQLite Database
  • Logger có tênTạo nhiều logger với tên/categore tùy chỉnh
  • Ghi log vào file có thể cấu hìnhChọn đường dẫn file tùy chỉnh cho các file .log
  • Đầu ra có thể bật/tắtKích hoạt/tắt ghi log vào console, file hoặc DB một cách linh hoạt
  • Tích hợp thủ tục liền mạchThiết kế dễ dàng tích hợp vào các dự án dựa trên lập trình thủ tục
  • Nhẹ và tái sử dụngCó thể sử dụng ngay trong nhiều dự án Python

Ví dụ thực tế

Ghi log vào Console

  • Định dạng sạch sẽ, hiện đại với đầu ra có màu sắc
  • Định dạng: [TênLogger] [Thời gian] [Mức độ] Tin nhắn

Ghi log vào File

  • Định dạng giống như ghi log vào console (không có màu)
  • Lưu trữ trong các file .log để bảo tồn dữ liệu

Ghi log vào Database (SQLite3)

  • Các log được lưu trữ trong một cơ sở dữ liệu SQLite có cấu trúc
  • Dữ liệu được phân tách thành các cột để dễ dàng truy vấn & phân tích
  • Hạn chế hiện tại: File DB được lưu tại một vị trí cố định (có thể cấu hình trong lộ trình phát triển trong tương lai)

Cách sử dụng

1. Tải mã nguồn

Tải phiên bản mới nhất để lấy module logger.py.

2. Thêm vào dự án của bạn

Đặt file logger.py vào thư mục dự án của bạn:

Copy
Dự-Anh-Của-Bạn/
 ├─ main.py
 └─ logger.py

3. Nhập Logger

Copy
import logger

Tạo một Logger

Copy
log = logger.create_logger("MyLogger")

Khởi tạo Logger

Copy
logger.initialize_logger(log, True, True)

Ghi log vào Console

Copy
logger.fatal(log, "Kiểm tra thông điệp log Fatal %s %d %f" % ("Kiểm tra nối chuỗi", 5, 5.5))
logger.error(log, "Kiểm tra thông điệp log Error %s %d %f" % ("Kiểm tra nối chuỗi", 5, 5.5))
logger.warning(log, "Kiểm tra thông điệp log Warning %s %d %f" % ("Kiểm tra nối chuỗi", 5, 5.5))
logger.success(log, "Kiểm tra thông điệp log Success %s %d %f" % ("Kiểm tra nối chuỗi", 5, 5.5))
logger.information(log, "Kiểm tra thông điệp log Information %s %d %f" % ("Kiểm tra nối chuỗi", 5, 5.5))
logger.debug(log, "Kiểm tra thông điệp log Debug %s %d %f" % ("Kiểm tra nối chuỗi", 5, 5.5))
logger.trace(log, "Kiểm tra thông điệp log Trace %s %d %f" % ("Kiểm tra nối chuỗi", 5, 5.5))

Bật ghi log vào File

Copy
log.set_toggle_file_logging(True)

Bật ghi log vào Database

Copy
logger.set_toggle_file_logging(log, True)

Đặt đường dẫn file cho log

Copy
logger.set_file_path(log, "C:\\Users\\TênCủaBạn\\logs")

Kiểm soát mức độ log

Các tùy chọn có sẵn:

  • ALL — Ghi tất cả các loại thông điệp
  • HIGH — Ghi FATAL, ERROR, WARNING, SUCCESS
  • MEDIUM — Ghi FATAL, ERROR, WARNING
  • LOW — Ghi FATAL, ERROR
Copy
logger.set_log_level(log, LogLevel.LOW)

Bộ công nghệ

  • Ngôn ngữ: Python 3
  • Module: inspect, os, enum, datetime, sqlite3
  • Công cụ: PyCharm, DataGrip, GitHub, Git

Lộ trình phát triển

  • Ghi log SQLite
  • Ghi log MySQL
  • Ghi log đa luồng
  • Ghi log không đồng bộ
  • Các loại thông điệp log tùy chỉnh

Tài nguyên tham khảo

  • Kho lưu trữ GitHub: ESTROSEC
  • Kho dự án GitHub: ESTROSEC
  • Medium: ESTROSEC
  • Dev.To: ESTROSEC
  • Patreon: ESTROSEC
  • Tumblr: ESTROSEC

Thực tiễn tốt nhất

  • Nên sử dụng các mức độ ghi log phù hợp với mức độ quan trọng của thông điệp.
  • Thường xuyên kiểm tra và tinh chỉnh cấu hình logger để đảm bảo hiệu suất tốt nhất.

Các cạm bẫy thường gặp

  • Không kiểm soát mức độ log có thể dẫn đến quá nhiều thông tin không cần thiết.
  • Để đường dẫn file ghi log cố định có thể gây khó khăn trong việc quản lý log.

Mẹo hiệu suất

  • Sử dụng ghi log không đồng bộ để giảm thiểu độ trễ trong ứng dụng.
  • Tối ưu hóa cấu trúc cơ sở dữ liệu để dễ dàng truy vấn log.

Giải quyết sự cố

  • Nếu không thấy log đầu ra, hãy kiểm tra lại cấu hình logger và đảm bảo rằng các đầu ra đã được kích hoạt.
  • Kiểm tra quyền truy cập thư mục nơi log được lưu trữ.

Câu hỏi thường gặp

1. Làm thế nào để thay đổi đường dẫn file log?
Bạn có thể sử dụng hàm set_file_path(log, "đường-dẫn") để thay đổi đường dẫn.

2. Logger hỗ trợ những mức độ nào?
Logger hỗ trợ các mức độ: ALL, HIGH, MEDIUM, LOW.

3. Có thể ghi log vào nhiều định dạng không?
Có, bạn có thể ghi log vào console, file và database đồng thời.


Kết luận

Module Logger tùy chỉnh này cung cấp cho bạn một cách đơn giản và hiệu quả để ghi lại các thông điệp log trong ứng dụng Python của bạn. Với những tính năng mạnh mẽ và dễ sử dụng, nó sẽ giúp bạn theo dõi và phân tích ứng dụng của mình một cách hiệu quả hơn. Hãy thử nghiệm và tích hợp nó vào dự án của bạn ngay hôm nay! Để nhận thêm thông tin và cập nhật mới, hãy theo dõi chúng tôi qua các kênh truyền thông xã hội hoặc gửi email cho chúng tôi với tiêu đề "TÔI YÊU ESTROSEC!" và nội dung "TIN TỨC & CẬP NHẬT YAY!"

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào