Logging Module (00y-logging.sh)¶
Version: v15.1.0
File:src/lib/00y-logging.sh
Dependencies:helpers.sh,00-core.sh
Overview¶
Unified logging system for OpenCode Initializer. Provides centralized logging with levels, rotation, and analysis.
Functions¶
Initialization¶
_logging_init()¶
Initializes logging directory and rotates logs if needed.
Log Functions¶
log_debug(message)¶
Logs debug message.
log_info(message)¶
Logs info message.
log_warn(message)¶
Logs warning message.
log_error(message)¶
Logs error message.
log_fatal(message)¶
Logs fatal message and exits.
Maintenance¶
_logging_rotate()¶
Rotates log files when they exceed maximum size.
_logging_analyze()¶
Analyzes log file and shows statistics.
_logging_analyze
# Output:
# Log Analysis
# Log file: ~/.cache/opencode-setup/logs/opencode.log
# Size: 1.2M
# Lines: 1234
#
# Level distribution:
# debug 100
# info 1000
# warn 100
# error 30
# fatal 4
#
# Recent errors:
# [2026-09-16T15:31:55Z] [error] Error message
_logging_clear()¶
Clears all log files.
Variables¶
| Variable | Description | Default |
|---|---|---|
_LOG_DIR | Log directory | ~/.cache/opencode-setup/logs |
_LOG_FILE | Log file | ~/.cache/opencode-setup/logs/opencode.log |
_LOG_LEVEL | Log level | info |
_LOG_MAX_SIZE | Maximum log size | 10485760 (10MB) |
_LOG_MAX_FILES | Maximum log files | 5 |
_LOG_FORMAT | Log format | text |
Log Levels¶
| Level | Description | Color |
|---|---|---|
debug | Debug messages | Gray |
info | Information messages | Green |
warn | Warning messages | Yellow |
error | Error messages | Red |
fatal | Fatal messages | Red Bold |
Usage¶
# Source the module
source src/lib/00y-logging.sh
# Initialize logging
_logging_init
# Log messages
log_debug "Debug message"
log_info "Info message"
log_warn "Warning message"
log_error "Error message"
# log_fatal "Fatal message" # Exits after logging
# Analyze logs
_logging_analyze
# Clear logs
_logging_clear
Log File Format¶
Text Format¶
[2026-09-16T15:31:55Z] [info] Info message
[2026-09-16T15:31:55Z] [warn] Warning message
[2026-09-16T15:31:55Z] [error] Error message
JSON Format¶
{"timestamp":"2026-09-16T15:31:55Z","level":"info","message":"Info message"}
{"timestamp":"2026-09-16T15:31:55Z","level":"warn","message":"Warning message"}
{"timestamp":"2026-09-16T15:31:55Z","level":"error","message":"Error message"}
Configuration¶
Environment Variables¶
export LOG_LEVEL=debug # Set log level
export LOG_MAX_SIZE=10485760 # Set max log size (10MB)
export LOG_MAX_FILES=5 # Set max log files
export LOG_FORMAT=json # Set log format