Giao diện
@digiforce-nc/plugin-logger
Plugin nhật ký hệ thống — cho phép admin xem, tìm kiếm, và tải về file log từ server qua giao diện web.
Plugin này làm gì?
Khi cần debug hay audit, admin cần truy cập log files trên server. plugin-logger cung cấp giao diện UI để duyệt danh sách file log, chọn file cần thiết, và download dưới dạng logs.tar.gz — không cần SSH vào server.
Ba nhiệm vụ chính
| # | Nhiệm vụ | Chi tiết |
|---|---|---|
| 1 | Liệt kê | Duyệt file .log trên server theo tree structure |
| 2 | Download | Chọn file → tải về logs.tar.gz (đóng gói bằng tar-fs) |
| 3 | Collect | Frontend gửi diagnostic data → server ghi log + trả tarball gộp |
Kiến trúc
Luồng download
API endpoints
| Endpoint | Method | Mô tả |
|---|---|---|
logger:list | GET | Danh sách file log (tree structure) |
logger:download | POST | Download file đã chọn → tar.gz. Body: { files: ["app.log", "sql.log"] } |
logger:collect | POST | Ghi diagnostic log từ frontend + trả tarball log gần nhất |
Bảo mật
- API kiểm tra path traversal — không cho phép truy cập file ngoài thư mục log
- Chỉ cho phép đọc file có extension
.log - ACL snippet:
pm.logger— chỉ admin được truy cập
Không có database
Plugin đọc trực tiếp từ filesystem — không tạo bảng nào. Thư mục log được xác định từ @digiforce-nc/logger config.
Thành phần client
| Thành phần | Mô tả |
|---|---|
LogsDownloader | Trang chính (Settings → Logger): Ant Design Tree hiển thị file log |
FileTree | Component tree view với checkbox chọn file |
DownloadButton | Nút download file đã chọn thành tar.gz |
DiagnosticCollector | Thu thập và gửi log diagnostic từ frontend |
Dependencies
| Package | Vai trò |
|---|---|
@digiforce-nc/server | Server framework |
@digiforce-nc/client | Client framework |
@digiforce-nc/logger | Logger path utilities, log directory config |
tar-fs | Đóng gói file log thành tar archive |