26/11/2023

26/11/2023
26/11/2023
Một phần công việc mà tôi đã từng làm là viết các script bằng Python hỗ trợ các đồng nghiệp IT-OPs (IT vận hành) và QA rà soát log files từ hệ thống để phát hiện các vấn đề phát sinh mà hệ thống giám sát online chưa phát hiện ra được (phân tích dữ liệu thô để phát hiện ra các "problem" chưa được định nghĩa).
Vì một số lý do đặc biệt mà tôi chỉ được phép cung cấp cho các đồng nghiệp công cụ dạng file script và mỗi lần cần lấy dữ liệu là các đồng nghiệp sẽ gõ lệnh python script_xxx.py trên màn hình terminal, kết quả thì vừa hiển thị trên terminal vừa xuất ra các định dạng file txt hoặc excel,...
Thi thoảng tôi lại đến ngồi cùng các đồng nghiệp để cùng trải nghiệm sản phẩm mà các đồng nghiệp gọi là "méo mó có hơn không". Mọi người thường kêu gào với tôi về việc màn hình nhàm chán, đơn điệu, không có điểm nhấn, yêu cầu tôi sửa lại cho dễ dùng hơn. Những lúc ấy tôi chỉ cười và động viên mọi người chịu khó mở file kết quả để xem cho chi tiết còn output ra màn hình chỉ để hỗ trợ thông báo là đã xử lý xong thôi.
Cho đến một ngày, tôi nhận được một user-story trực tiếp từ quản lý:
"Màn hình báo cáo tra soát từ log-files của anh cung cấp cho users thuộc bộ phận IT và QA đơn điệu quá, mỗi lần muốn tra cứu nhanh thông tin kết quả từ màn hình terminal là users muốn toét cả mắt hoặc phải copy toàn bộ dữ liệu sang text-editor để tìm kiếm theo từ khóa Major, Cirtica, Fatal. Users muốn có màn hình thông tin thân thiện hơn, thay đổi màu sắc ở những chỗ có cảnh báo quan trọng"
Có lệnh của "sếp", đã đến lúc tôi cần nghiêm túc hơn với sản phẩm của mình rồi.
Nói qua một chút về phần mềm của tôi, tôi và các đồng nghiệp đặt cho nó một cái tên là "ACL" (auto control log-files). Nhiệm vụ của ACL là đọc các file log đã được user lấy về từ hệ thống, thực hiện phân tích các block-log trong file để tìm các cụm thông tin hữu ích, các cụm thông tin chưa từng xuất hiện hoặc thông tin có thể gây ra nguy hiểm cho hệ thống, các thông tin này sẽ được đưa ra màn hình terminal cho người sử dụng có thể nhìn thấy. Sau mỗi lượt đọc & phân tích log sẽ thực hiện tổng hợp lại thành các báo cáo và các cảnh báo trên màn hình terminal.
Bình thường màn hình tổng hợp cuối cùng các báo cáo sẽ ra như kiểu này.
Khá đơn điệu với màu chữ trắng trên nền đen, ngồi nhìn màn hình như này bảo sao các user của tôi không phát chán :)).
Công việc của tôi sẽ là phải tìm cách thực hiện đổi màu các chữ trên màn hình đen để có thể focus đúng vào các vị trí cảnh báo marjor, critical, fatal ?
Tìm kiếm với một vài từ khóa và lang thang "đi dạo" qua các package trên “kho” của python thì ra thư viện khá thú vị là Colorama. Hãy cùng tôi thực hiện khám phá thư viện này nhé.
Cài đặt thư viện26/11/2023
Đợi chút
26/11/2023
Có thể sử dụng các mã màu ANSI để chuyển đổi màu chữ trong Python mà không cần sử dụng thư viện colorama. Bạn có thể sử dụng các chuỗi escape sequence để thay đổi màu chữ. Ví dụ:
Lưu ý rằng `\033[0m` được sử dụng để đặt lại màu về mặc định. Bạn có thể tìm hiểu thêm về mã màu ANSI để biết thêm các mã màu khác.
Nếu bạn muốn hỏi bài tập
Các câu hỏi của bạn luôn được giải đáp dưới 10 phút
CÂU HỎI LIÊN QUAN
16/12/2025
08/12/2025
Top thành viên trả lời