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ại — TRACE, DEBUG, INFO, SUCCESS, WARNING, ERROR, FATAL
- Ghi log nhiều mức độ — ALL, HIGH, MEDIUM, LOW
- Ghi log nhiều đầu ra — Console, File, SQLite Database
- Logger có tên — Tạo nhiều logger với tên/categore tùy chỉnh
- Ghi log vào file có thể cấu hình — Chọn đường dẫn file tùy chỉnh cho các file
.log - Đầu ra có thể bật/tắt — Kí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ạch — Thiế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ụng — Có 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:
Dự-Anh-Của-Bạn/
├─ main.py
└─ logger.py
3. Nhập Logger
import logger
Tạo một Logger
log = logger.create_logger("MyLogger")
Khởi tạo Logger
logger.initialize_logger(log, True, True)
Ghi log vào Console
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
log.set_toggle_file_logging(True)
Bật ghi log vào Database
logger.set_toggle_file_logging(log, True)
Đặt đường dẫn file cho log
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
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!"