Skip to content

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

Downloadsnpm versionGitHub starsGitHub issuesTestsMIT 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 bootstrapimport*asdotenvfrom'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',newError('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',newError('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=trueLOG_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

Code Corn LogoFederico Girolami Avatar

📝 License

MIT © CodeCorn™

Distribuito sotto licenza MIT.


🤝 Contribuisci

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

Powered by CodeCorn™ 🚀

About

logger codecorn console-log-colors chalk node js ts

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages