Trang tài liệu
Khóa học C++ nền tảng
Chương 20. Thư viện
Spdlog

Spdlog

spdlog là thư viện ghi nhật ký C++ nhanh, chỉ có tiêu đề. Nó cung cấp một cách đơn giản và hiệu quả để thêm nhật ký chẩn đoán vào ứng dụng C++ của bạn.

Tính năng:

  • Chỉ tiêu đề, không cần xây dựng hoặc liên kết thư viện
  • Có khả năng cấu hình cao, bao gồm hỗ trợ cho các phần ghi nhật ký tùy chỉnh (ví dụ: ghi vào tệp hoặc cơ sở dữ liệu)
  • Chế độ ghi nhật ký không đồng bộ và đồng bộ
  • Kiểm tra chuỗi định dạng dựa trên tiền xử lý để bắt lỗi tại thời điểm biên dịch
  • Dễ dàng mở rộng với các trình định dạng, phần chìm và cấp độ tùy chỉnh

Ví dụ sử dụng:

Bao gồm tiêu đề spdlog, tạo một đối tượng logger và sử dụng nó để ghi các thông báo:

#include "spdlog/spdlog.h"
 
int main() {
    // Tạo một logger với tên "example_logger"
    auto logger = spdlog::stdout_color_mt("example_logger");
 
    // Thông báo nhật ký với các mức độ nghiêm trọng khác nhau
    logger->info("Welcome to spdlog!");
    logger->warn("Warning message");
    logger->error("Error message");
 
    return 0;
}

Ví dụ về tệp chìm tùy chỉnh:

Đây là một ví dụ về cách tạo trình ghi nhật ký với tệp chìm tùy chỉnh ghi vào tệp văn bản:

#include "spdlog/spdlog.h"
#include "spdlog/sinks/basic_file_sink.h"
 
int main() {
    // Tạo một tệp chìm để ghi nhật ký vào "logs.txt"
    auto file_sink = std::make_shared<spdlog::sinks::basic_file_sink_mt>("logs.txt");
 
    // Tạo logger với tệp chìm và tên "example_logger"
    auto logger = std::make_shared<spdlog::logger>("example_logger", file_sink);
 
    // Đăng ký bộ ghi
    spdlog::register_logger(logger);
 
    // Thông báo log
    logger->info("Welcome to spdlog!");
    logger->warn("Warning message");
    logger->error("Error message");
 
    return 0;
}

Để biết thêm ví dụ và tài liệu chi tiết, hãy truy cập kho lưu trữ spdlog GitHub.