#!/bin/bash
# -*- coding: utf-8 -*-
# Timestamp: "2025-11-12 (ywatanabe)"
# File: ./config/logging.conf
# Description: Centralized logging configuration for clean, readable output
# ============================================================================
# Logging Levels
# ============================================================================
# Verbosity level (0=quiet, 1=normal, 2=verbose, 3=debug)
SCITEX_LOG_LEVEL=${SCITEX_LOG_LEVEL:-1}
# Show script paths in "Running..." messages
SCITEX_LOG_SHOW_PATHS=${SCITEX_LOG_SHOW_PATHS:-false}
# Show individual file operations
SCITEX_LOG_SHOW_FILES=${SCITEX_LOG_SHOW_FILES:-false}
# Show git command output
SCITEX_LOG_SHOW_GIT=${SCITEX_LOG_SHOW_GIT:-false}
# ============================================================================
# Logging Functions
# ============================================================================
# Stage-level messages (always shown)
log_stage_start() {
local stage="$1"
local timestamp=$(date '+%H:%M:%S')
echo -e "\033[0;34m▸\033[0m \033[1m${stage}\033[0m"
}
log_stage_end() {
local stage="$1"
local elapsed="$2"
echo -e "\033[0;32m✓\033[0m ${stage} \033[0;90m(${elapsed}s)\033[0m"
}
# Process-level messages (shown in normal mode)
log_process() {
if [ "$SCITEX_LOG_LEVEL" -ge 1 ]; then
echo -e " \033[0;90m→ $1\033[0m"
fi
}
# Task-level messages (shown in verbose mode)
log_task() {
if [ "$SCITEX_LOG_LEVEL" -ge 2 ]; then
echo -e " \033[0;90m• $1\033[0m"
fi
}
# Success messages
log_success() {
echo -e " \033[0;32m✓\033[0m $1"
}
# Warning messages
log_warning() {
echo -e " \033[0;33m⚠\033[0m $1"
}
# Error messages
log_error() {
echo -e " \033[0;31m✗\033[0m $1"
}
# Info messages (shown in verbose mode)
log_info() {
if [ "$SCITEX_LOG_LEVEL" -ge 2 ]; then
echo -e " \033[0;90mℹ $1\033[0m"
fi
}
# Debug messages (shown in debug mode)
log_debug() {
if [ "$SCITEX_LOG_LEVEL" -ge 3 ]; then
echo -e " \033[0;35m[DEBUG] $1\033[0m"
fi
}
# ============================================================================
# Compatibility Aliases (for gradual migration)
# ============================================================================
echo_header() {
log_stage_start "$1"
}
echo_info() {
log_process "$1"
}
echo_success() {
log_success "$1"
}
echo_warning() {
log_warning "$1"
}
echo_error() {
log_error "$1"
}
# ============================================================================
# Export Functions
# ============================================================================
export -f log_stage_start
export -f log_stage_end
export -f log_process
export -f log_task
export -f log_success
export -f log_warning
export -f log_error
export -f log_info
export -f log_debug
export -f echo_header
export -f echo_info
export -f echo_success
export -f echo_warning
export -f echo_error
export SCITEX_LOG_LEVEL
export SCITEX_LOG_SHOW_PATHS
export SCITEX_LOG_SHOW_FILES
export SCITEX_LOG_SHOW_GIT
# EOF