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"
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);
}
Structured Logging
#include "logger_system/StructuredLogger.h"
auto logger = logger_system::createStructuredLogger(
"app.json");
{"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");
logger_->info("Work completed");
}
private:
std::shared_ptr<ILogger> logger_;
};
Multiple Loggers
auto app_logger = logger_system::createLogger("app.log");
auto db_logger = logger_system::createLogger({
.filename = "database.log",
.level = LogLevel::DEBUG
});
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
});
3. Contextual Logging
auto base_logger = logger_system::createLogger("app.log");
auto request_logger = base_logger->with_context({
{"request_id", generate_uuid()},
{"user_id", user_id}
});
request_logger->info("Processing request");
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