Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

CodeCornTech/corn-logger

Repository files navigation

🌽 @codecorn/corn-logger

🧠 Logger TypeScript avanzato per Node.js con supporto a colori, salvataggio su file, sub-contesto e livello log.
Colori, contesto, stack trace, log file, livelli e supporto a .env. Basato su console-log-colors e ottimizzato per ambienti CLI/DevOps.

@codecorn/corn-logger

Downloads npm version GitHub stars GitHub issues Tests MIT License


πŸš€ Installazione

npm install @codecorn/corn-logger

oppure con yarn:

yarn add @codecorn/corn-logger

⚠️ Il logger legge automaticamente variabili da .env se presenti (dotenv.config() è incluso).


✨ Funzionalità

  • βœ… Log colorati con contesto e sub-contesto
  • βœ… Livelli: DEBUG, INFO, WARN, ERROR
  • βœ… Logging condizionale su file (process.env.LOG_STORE=true)
  • βœ… Supporto a stack trace errori
  • βœ… Pretty-print JSON e oggetti complessi
  • βœ… Time e date IT friendly (dd/MM/yyyy HH:mm:ss)

πŸ”§ Setup base

// index.ts o bootstrap
import * as dotenv from 'dotenv';
dotenv.config();
import { logInfo, logError, logWarn, logDebug, logMessage } from '@codecorn/corn-logger';
logMessage('DEBUG', 'BOOT', 'Logger pronto πŸš€');
logInfo('MAIN', 'Tutto ok');
logWarn('INIT', { warning: 'config mancante' });
logError('DB', new Error('Connessione fallita'), 'DBConnect');
logDebug('SERVICE', { id: 123, state: 'running' }, 'JobRunner');

πŸ”₯ Esempi

logInfo('SERVER', 'Server avviato sulla porta 3000');
logWarn('DB', 'Connessione lenta rilevata', 'Postgres');
logError('API', new Error('Endpoint fallito'), 'GET /api/user');
logDebug('AUTH', { user: 'admin', role: 'superuser' }, 'SessionPayload');

Tutti i log vengono stampati in console colorata e salvati in logs/YYYY-MM-DD.log se LOG_STORE=true.


βš™οΈ Variabili .env e πŸ“¦ Logger su File

Per abilitare la scrittura su file nella directory logs/:

LOG_STORE=true
LOG_DIR=test_log

Se LOG_STORE=true, ogni log sarΓ  anche salvato in file logs/YYYY-MM-DD.log.

Output nel formato:

[2025εΉ΄08月05ζ—₯ 14:33:05] [SERVICE] DEBUG > JobRunner:
{ id: 123, state: 'running' }

✨ Features

  • βœ… Colorazione ANSI per ogni livello log
  • βœ… Sub-context support (logError(context, err, subContext))
  • βœ… Supporto a Error, object, string, null, undefined
  • βœ… Salvataggio su file con timestamp (LOG_STORE=true)
  • βœ… Estendibile e minimalista

πŸ”§ Scripts utili

Nel tuo package.json:

"scripts": {
 "build": "tsc",
 "dev": "tsc --watch",
 "lint": "tsc --noEmit",
 "prepare": "npm run build"
}

πŸ—‚ Struttura progetto

corn-logger/
β”œβ”€β”€ dist/ # Build finale JS
β”œβ”€β”€ src/ # Codice sorgente TS
β”œβ”€β”€ types/ # Tipi definiti
β”œβ”€β”€ index.ts # Entry point
β”œβ”€β”€ index.ts # Cli script
β”œβ”€β”€ .env # (opzionale)
β”œβ”€β”€ .npmignore
β”œβ”€β”€ package.json
β”œβ”€β”€ README.md
β”œβ”€β”€ LICENSE
└── tsconfig.json

πŸ›  Integrazione CLI (facoltativa)

Puoi usare il logger anche direttamente da terminale in diversi modi:

βœ… 1. Esecuzione diretta con npx

npx cornlog --context "SYSTEM" --level info --message "Avvio completato"

βœ… 2. Esecuzione tramite npm run

Usa lo script definito nel tuo package.json:

npm run cli -- -c SYSTEM -l info -m "Avvio completato"

Attenzione al doppio --: serve per passare argomenti al comando CLI.


βœ… 3. Esecuzione via npm link (globale)

Se hai eseguito:

npm run build
npm link

Puoi usare direttamente il comando globale ovunque nel sistema:

cornlog -c SYSTEM -l info -m "Avvio completato"

🎯 Altri esempi CLI

cornlog -c DB -l warn -m "Query lenta" -s "postgres"
cornlog -c API -l error -m "Token non valido" -s "AuthMiddleware"
cornlog -c JOB -l debug -m "Task schedulato" -s "cron-runner"
cornlog -c INIT -l info -m "Configurazione caricata"

I log verranno colorati e stampati a terminale. Se LOG_STORE=true nel tuo .env, verranno anche salvati in logs/YYYY-MM-DD.log.


πŸ“– Guida rapida CLI (--help)

Per vedere tutte le opzioni disponibili della CLI, puoi usare:

cornlog --help

Output:

Usage: cornlog [options]
🧠 Logger CLI CodeCorn - log colorato e opzionale su file
Options:
 -c, --context <context> Contesto del log (es: SYSTEM, DB, API) [obbligatorio]
 -l, --level <level> Livello log: info | warn | error | debug [obbligatorio]
 -m, --message <message> Messaggio da loggare [obbligatorio]
 -s, --sub <subContext> Sotto-contesto opzionale
 -V, --version Mostra versione
 -h, --help Mostra questo aiuto

⚠️ Tutte le opzioni marcate come obbligatorie devono essere specificate, altrimenti la CLI restituirà un errore.


πŸ§ͺ Test

npm run lint
npm test

πŸ‘€ Maintainer

πŸ‘¨β€πŸ’» Federico Girolami

Full Stack Developer | System Integrator | Digital Solution Architect πŸš€

πŸ“« Get in Touch

🌐 Website: codecorn.it *(Under Construction)*

πŸ“§ Email: f.girolami@codecorn.it

πŸ™ GitHub: github.com/fgirolami29


πŸ“ License

MIT Β© CodeCornTM

Distribuito sotto licenza MIT.


🀝 Contribuisci

Pull request benvenute. Per grosse modifiche apri una issue prima di iniziare.

Powered by CodeCornTM πŸš€

About

logger codecorn console-log-colors chalk node js ts

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /