Skip to content

[MODULE] Create C++20 module files for kcenon.logger #275

Description

@kcenon

Summary

Create C++20 module files for logger_system as part of the Tier 2 libraries.

Parent Epic

Part of kcenon/common_system#256 (C++20 Module Migration - Cross-System Preparation)

Prerequisites

Proposed Module Structure

// Primary module interface
export module kcenon.logger;

import kcenon.common;           // Required
import kcenon.thread;           // Optional

export import kcenon.logger.core;
export import kcenon.logger.backends;
export import kcenon.logger.analysis;

Module Partitions

Partition Contents
:core Logger, LogContext, LogCollector
:backends Backend implementations
:analysis Log analysis utilities

File Structure

src/modules/
├── logger.cppm              # Primary module interface
├── core.cppm                # Core partition
├── backends.cppm            # Backends partition
└── analysis.cppm            # Analysis partition

CMake Configuration

cmake_minimum_required(VERSION 3.28)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_SCAN_FOR_MODULES ON)

add_library(kcenon_logger)
target_sources(kcenon_logger
    PRIVATE FILE_SET CXX_MODULES
    FILES
        src/modules/logger.cppm
        src/modules/core.cppm
        src/modules/backends.cppm
        src/modules/analysis.cppm
)

Tasks

  • Complete factory removal ([REFACTOR] Remove unnecessary factories - C++20 Module preparation #274) first
  • Wait for common_system module (Tier 0) completion
  • Create module directory structure
  • Create logger.cppm primary interface
  • Create partition files
  • Update CMakeLists.txt for module support
  • Verify no circular module dependencies
  • Update all tests to use modules
  • Update documentation

Acceptance Criteria

  • Module builds successfully with CMake 3.28+
  • Successfully imports kcenon.common module
  • All existing tests pass with module
  • No circular dependencies
  • Header-based build still works (transition period)

Migration Timeline

This is Phase 2 work (Release N+4) per EPIC:

  • Blocked by: Tier 0/1 modules, factory removal

Related

Metadata

Metadata

Assignees

Labels

architectureArchitectural changes and designenhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions