[Sub-issue #80-A]: Logging Config Generator Script #81

Closed
opened 2026-02-03 02:18:26 +00:00 by egullickson · 0 comments
Owner

Parent Issue

Refs #80 - Unified Debug Logging System

Scope

Create scripts/ci/generate-log-config.sh that maps a single LOG_LEVEL env var to per-container settings.

Files to Create/Modify

  • Create: scripts/ci/generate-log-config.sh

Implementation Details

#!/bin/bash
# generate-log-config.sh - Generate .env.logging from LOG_LEVEL

LOG_LEVEL="${1:-INFO}"

# Validate input
case "$LOG_LEVEL" in
  DEBUG|INFO|WARN|ERROR) ;;
  *) echo "Error: Invalid LOG_LEVEL '$LOG_LEVEL'. Must be DEBUG, INFO, WARN, or ERROR." && exit 1 ;;
esac

# Generate mappings
cat > .env.logging << EOF
# Generated by generate-log-config.sh
LOG_LEVEL=$LOG_LEVEL

# Backend/OCR (Pino)
BACKEND_LOG_LEVEL=$(echo $LOG_LEVEL | tr '[:upper:]' '[:lower:]')

# Frontend (Vite)
VITE_LOG_LEVEL=$(echo $LOG_LEVEL | tr '[:upper:]' '[:lower:]')

# PostgreSQL
POSTGRES_LOG_STATEMENT=$(case $LOG_LEVEL in DEBUG) echo "all";; INFO) echo "ddl";; *) echo "none";; esac)
POSTGRES_LOG_MIN_DURATION=$(case $LOG_LEVEL in DEBUG) echo "0";; INFO) echo "500";; WARN) echo "1000";; ERROR) echo "-1";; esac)

# Redis
REDIS_LOGLEVEL=$(case $LOG_LEVEL in DEBUG) echo "debug";; INFO) echo "verbose";; WARN) echo "notice";; ERROR) echo "warning";; esac)

# Traefik
TRAEFIK_LOG_LEVEL=$LOG_LEVEL
EOF

echo "Generated .env.logging with LOG_LEVEL=$LOG_LEVEL"

Acceptance Criteria

  • Script accepts LOG_LEVEL argument (DEBUG, INFO, WARN, ERROR)
  • Script validates input and fails on invalid LOG_LEVEL
  • Script generates .env.logging with correct mappings per container
  • Script is executable and documented in header

Dependencies

None - can be executed in parallel with #80-C and #80-E

Milestone

Milestone 1: Foundation

## Parent Issue Refs #80 - Unified Debug Logging System ## Scope Create `scripts/ci/generate-log-config.sh` that maps a single LOG_LEVEL env var to per-container settings. ## Files to Create/Modify - Create: `scripts/ci/generate-log-config.sh` ## Implementation Details ```bash #!/bin/bash # generate-log-config.sh - Generate .env.logging from LOG_LEVEL LOG_LEVEL="${1:-INFO}" # Validate input case "$LOG_LEVEL" in DEBUG|INFO|WARN|ERROR) ;; *) echo "Error: Invalid LOG_LEVEL '$LOG_LEVEL'. Must be DEBUG, INFO, WARN, or ERROR." && exit 1 ;; esac # Generate mappings cat > .env.logging << EOF # Generated by generate-log-config.sh LOG_LEVEL=$LOG_LEVEL # Backend/OCR (Pino) BACKEND_LOG_LEVEL=$(echo $LOG_LEVEL | tr '[:upper:]' '[:lower:]') # Frontend (Vite) VITE_LOG_LEVEL=$(echo $LOG_LEVEL | tr '[:upper:]' '[:lower:]') # PostgreSQL POSTGRES_LOG_STATEMENT=$(case $LOG_LEVEL in DEBUG) echo "all";; INFO) echo "ddl";; *) echo "none";; esac) POSTGRES_LOG_MIN_DURATION=$(case $LOG_LEVEL in DEBUG) echo "0";; INFO) echo "500";; WARN) echo "1000";; ERROR) echo "-1";; esac) # Redis REDIS_LOGLEVEL=$(case $LOG_LEVEL in DEBUG) echo "debug";; INFO) echo "verbose";; WARN) echo "notice";; ERROR) echo "warning";; esac) # Traefik TRAEFIK_LOG_LEVEL=$LOG_LEVEL EOF echo "Generated .env.logging with LOG_LEVEL=$LOG_LEVEL" ``` ## Acceptance Criteria - [ ] Script accepts LOG_LEVEL argument (DEBUG, INFO, WARN, ERROR) - [ ] Script validates input and fails on invalid LOG_LEVEL - [ ] Script generates `.env.logging` with correct mappings per container - [ ] Script is executable and documented in header ## Dependencies None - can be executed in parallel with #80-C and #80-E ## Milestone Milestone 1: Foundation
egullickson added the
status
backlog
type
chore
labels 2026-02-03 02:19:38 +00:00
egullickson added
status
in-progress
and removed
status
backlog
labels 2026-02-04 01:23:34 +00:00
egullickson added
status
review
and removed
status
in-progress
labels 2026-02-04 01:26:10 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: egullickson/motovaultpro#81