Logger System 0.1.3
High-performance C++20 thread-safe logging system with asynchronous capabilities
Loading...
Searching...
No Matches
README

autotoc_md2328

doc_id: "LOG-GUID-024" doc_title: "Logger System Integration Guide" doc_version: "1.0.0" doc_date: "2026-04-04" doc_status: "Released" project: "logger_system"

category: "GUID"

Logger System Integration Guide

SSOT: This document is the single source of truth for Logger System Integration Guide.

Overview

This directory contains integration guides for using logger_system with other KCENON systems.

Integration Guides

  • With Common System - ILogger interface implementation
  • With Thread System - Async logging and thread-safe operations
  • With Monitoring System - Log metrics and observability
  • With Network System - Network event logging
  • With Database System - Database query logging

Quick Start

Basic Logging

#include "logger_system/Logger.h"
int main() {
auto logger = logger_system::createLogger("app.log");
logger->info("Application started");
logger->debug("Debug information");
logger->warn("Warning message");
logger->error("Error occurred: {}", error_msg);
}
int main()

Structured Logging

#include "logger_system/StructuredLogger.h"
auto logger = logger_system::createStructuredLogger("app.json");
logger->log({
{"event", "user_login"},
{"user_id", 12345},
{"ip_address", "192.168.1.100"},
{"timestamp", std::time(nullptr)}
});

Async Logging for High Performance

auto logger = logger_system::createLogger({
.filename = "app.log",
.async = true,
.buffer_size = 8192,
.flush_interval = std::chrono::milliseconds(100)
});

Integration Patterns

Dependency Injection

class MyService {
public:
MyService(std::shared_ptr<ILogger> logger)
: logger_(std::move(logger)) {}
void doWork() {
logger_->info("Starting work");
// ... work ...
logger_->info("Work completed");
}
private:
std::shared_ptr<ILogger> logger_;
};

Multiple Loggers

// Application logger
auto app_logger = logger_system::createLogger("app.log");
// Database query logger
auto db_logger = logger_system::createLogger({
.filename = "database.log",
.level = LogLevel::DEBUG
});
// Error logger
auto error_logger = logger_system::createLogger({
.filename = "errors.log",
.level = LogLevel::ERROR
});

Common Use Cases

1. Request/Response Logging

server->on_request([logger](const auto& req) {
logger->info("Request: {} {}", req.method(), req.path());
});
server->on_response([logger](const auto& resp) {
logger->info("Response: {} ({}ms)", resp.status(), resp.duration());
});

2. Log Rotation

auto logger = logger_system::createLogger({
.filename = "app.log",
.rotation = logger_system::Rotation::Daily,
.max_files = 7 // Keep 7 days of logs
});

3. Contextual Logging

auto base_logger = logger_system::createLogger("app.log");
// Add context for specific request
auto request_logger = base_logger->with_context({
{"request_id", generate_uuid()},
{"user_id", user_id}
});
request_logger->info("Processing request"); // Includes context

Best Practices

  • Use INFO level for production deployments
  • Enable async logging for high-throughput applications
  • Separate logs by component or subsystem
  • Filter sensitive data from logs (passwords, API keys)
  • Use structured logging for machine-readable logs

Additional Resources