@codecorn/corn-logger
v1.0.4
Published
๐ง Logger CodeCorn CLI + Console + File Logger - colorato e strutturato
Maintainers
Readme
๐ฝ @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 suconsole-log-colorse ottimizzato per ambienti CLI/DevOps.
๐ Installazione
npm install @codecorn/corn-loggeroppure con yarn:
yarn add @codecorn/corn-loggerโ ๏ธ Il logger legge automaticamente variabili da
.envse 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
ITfriendly (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.logseLOG_STORE=true.
โ๏ธ Variabili .env e ๐ฆ Logger su File
Per abilitare la scrittura su file nella directory logs/:
LOG_STORE=true
LOG_DIR=test_logSe
LOG_STORE=true, ogni log sarร anche salvato in filelogs/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 linkPuoi 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=truenel tuo.env, verranno anche salvati inlogs/YYYY-MM-DD.log.
๐ Guida rapida CLI (--help)
Per vedere tutte le opzioni disponibili della CLI, puoi usare:
cornlog --helpOutput:
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
๐ License
MIT ยฉ CodeCornโข
Distribuito sotto licenza MIT.
๐ค Contribuisci
Pull request benvenute. Per grosse modifiche apri una issue prima di iniziare.
Powered by CodeCornโข ๐
