Bỏ qua, đến nội dung

Cài đặt và sử dụng — Logger

Tổng quan

Plugin Logger cung cấp giao diện quản trị (Admin UI) để xem danh sách, tìm kiếm, và tải về file log từ server — không cần SSH trực tiếp vào máy chủ. Plugin đọc file .log từ filesystem và đóng gói thành logs.tar.gz để download.

Bước 1: Kích hoạt Plugin

Plugin Logger thường được bật sẵn khi cài đặt Digiforce. Kiểm tra trong Settings → Plugin Manager và đảm bảo plugin-logger đang ở trạng thái Enabled.

Nếu chưa bật, kích hoạt và khởi động lại server.

Bước 2: Truy cập giao diện Logger

Sau khi plugin được kích hoạt, vào Settings → Logger trong giao diện quản trị. Giao diện hiển thị:

  • Cây thư mục (Tree view): Danh sách tất cả file .log trên server, có hỗ trợ thư mục lồng nhau
  • Ô tìm kiếm: Lọc file theo tên
  • Checkbox: Chọn file cần tải về
  • Nút Download: Tải file đã chọn dưới dạng logs.tar.gz

Các loại file log

File logMô tả
request_*.logLog request và response của API
system_*.logLog hệ thống: ứng dụng, database, plugin
system_error_*.logLog lỗi hệ thống (tách riêng từ system log)
sql_*.logLog câu lệnh SQL (khi DB_LOGGING được bật)

Bước 3: Tải về file log

  1. Mở Settings → Logger
  2. Duyệt cây thư mục và tick chọn file cần tải
  3. Nhấn Download (.tar.gz)
  4. Trình duyệt sẽ tải về file logs.tar.gz

Giải nén trên máy local:

bash
tar -xzf logs.tar.gz

Cấu hình biến môi trường

Plugin Logger đọc cấu hình từ hệ thống logger core (@digiforce-nc/logger). Các biến môi trường quan trọng:

Biến môi trườngGiá trị mặc địnhMô tả
LOGGER_LEVELinfoMức log: error, warn, info, debug
LOGGER_TRANSPORTconsole,fileNơi ghi log (console, file, hoặc cả hai)
LOGGER_BASE_PATH./storage/logsThư mục lưu file log

Mức log (Log Level)

MứcKhi nào dùngLượng log
errorChỉ ghi lỗi nghiêm trọngÍt nhất
warnGhi cảnh báo và lỗiÍt
infoThông tin hoạt động bình thường (khuyến nghị cho production)Vừa phải
debugThông tin chi tiết cho gỡ lỗiRất nhiều

Cảnh báo

Mức debug tạo rất nhiều log và ảnh hưởng hiệu năng. Chỉ sử dụng khi cần gỡ lỗi, sau đó chuyển lại info hoặc warn.

API Endpoints

Plugin đăng ký ba API endpoints:

EndpointMethodMô tảBody
logger:listGETLiệt kê danh sách file log (dạng tree)
logger:downloadPOSTDownload file đã chọn → logs.tar.gz{ files: ["request.log", "sql.log"] }
logger:collectPOSTThu thập diagnostic từ frontend, trả về log gần nhất{ error: {...}, ... }

Bảo mật API

  • Tất cả endpoints được bảo vệ bởi ACL snippet pm.logger
  • Chỉ người dùng có quyền admin mới truy cập được
  • Kiểm tra path traversal: không cho phép truy cập file ngoài thư mục log
  • Chỉ cho phép file có extension .log

Tính năng Diagnostic Collect

Khi gặp lỗi trên frontend, hệ thống có thể tự động:

  1. Gửi thông tin lỗi frontend lên server qua logger:collect
  2. Server ghi thông tin diagnostic (lỗi, biến môi trường) vào log
  3. Server tìm các file log mới nhất (request, sql, system, system_error)
  4. Đóng gói và trả về cho admin dưới dạng logs.tar.gz

Lưu ý khi vận hành

  • Log file tự động rotate theo cấu hình của @digiforce-nc/logger (kích thước và thời gian)
  • Không có database: Plugin đọc trực tiếp từ filesystem, không tạo bảng nào
  • Dung lượng ổ đĩa: Theo dõi dung lượng thư mục log, đặc biệt khi bật DB_LOGGING (SQL log rất lớn)
  • Production: Khuyến nghị dùng mức info hoặc warn, kết hợp với hệ thống log tập trung (ELK, Datadog, Loki)