chromalogger 1.1.2 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/INFO.md DELETED
@@ -1,128 +0,0 @@
1
- # Guide d'utilisation des niveaux de log
2
-
3
- Ce document explique comment utiliser efficacement les différents niveaux de log dans la bibliothèque ChromaLogger.
4
-
5
- ## Table des matières
6
-
7
- - [Introduction aux niveaux de log](#introduction-aux-niveaux-de-log)
8
- - [Les différents niveaux disponibles](#les-différents-niveaux-disponibles)
9
- - [Comment définir le niveau de log](#comment-définir-le-niveau-de-log)
10
- - [Exemples d'utilisation](#exemples-dutilisation)
11
- - [Bonnes pratiques](#bonnes-pratiques)
12
- - [Dépannage](#dépannage)
13
-
14
- ## Introduction aux niveaux de log
15
-
16
- Les niveaux de log vous permettent de contrôler la quantité d'informations affichées dans vos journaux. Cela est particulièrement utile pour :
17
-
18
- - Déboguer des problèmes en production
19
- - Réduire le bruit dans les logs en production
20
- - Activer/désactiver des logs détaillés selon l'environnement
21
-
22
- ## Les différents niveaux disponibles
23
-
24
- La bibliothèque supporte 5 niveaux de log, du plus bas au plus élevé :
25
-
26
- | Niveau | Valeur | Description |
27
- | ------- | ------ | -------------------------------------------------------- |
28
- | `DEBUG` | 0 | Niveau le plus détaillé, utilisé pour le débogage |
29
- | `INFO` | 1 | Informations générales sur le déroulement du programme |
30
- | `WARN` | 2 | Situations potentiellement problématiques |
31
- | `ERROR` | 3 | Erreurs qui n'empêchent pas l'application de fonctionner |
32
- | `NONE` | 4 | Aucun log ne sera affiché |
33
-
34
- ## Comment définir le niveau de log
35
-
36
- Utilisez la fonction `setLogLevel()` pour définir le niveau de log :
37
-
38
- ```javascript
39
- import { setLogLevel, LOG_LEVELS } from './index.js';
40
-
41
- // Méthode 1 : Utiliser le nom du niveau
42
- setLogLevel('DEBUG'); // Affiche tous les messages
43
- setLogLevel('INFO'); // Affiche INFO, WARN et ERROR
44
- setLogLevel('WARN'); // Affiche WARN et ERROR
45
- setLogLevel('ERROR'); // Affiche uniquement les erreurs
46
- setLogLevel('NONE'); // Désactive tous les logs
47
-
48
- // Méthode 2 : Utiliser la constante LOG_LEVELS
49
- setLogLevel(LOG_LEVELS.DEBUG);
50
- ```
51
-
52
- ## Exemples d'utilisation
53
-
54
- ### Configuration de base
55
-
56
- ```javascript
57
- import { setLogLevel, log, debug, info, warn, error } from './index.js';
58
-
59
- // Définir le niveau de log (par défaut: INFO)
60
- setLogLevel('DEBUG');
61
-
62
- // Ces logs s'afficheront selon le niveau défini
63
- debug('Message de débogage'); // Niveau DEBUG (0)
64
- log('Message standard'); // Niveau INFO (1)
65
- info('Information'); // Niveau INFO (1)
66
- warn('Avertissement'); // Niveau WARN (2)
67
- error('Erreur'); // Niveau ERROR (3)
68
- ```
69
-
70
- ### Utilisation dans différents environnements
71
-
72
- ```javascript
73
- // Dans votre configuration d'environnement
74
- const environment = process.env.NODE_ENV || 'development';
75
-
76
- // Définir le niveau de log selon l'environnement
77
- if (environment === 'production') {
78
- setLogLevel('WARN'); // En production, on ne veut que les avertissements et erreurs
79
- } else {
80
- setLogLevel('DEBUG'); // En développement, on veut tout voir
81
- }
82
- ```
83
-
84
- ## Bonnes pratiques
85
-
86
- 1. **Environnement de développement** : Utilisez `DEBUG` ou `INFO` pour avoir un maximum d'informations
87
- 2. **Environnement de test** : Utilisez `INFO` pour suivre l'exécution des tests
88
- 3. **Environnement de production** : Utilisez `WARN` ou `ERROR` pour éviter la surcharge de logs
89
- 4. **Pour le débogage** : Passez temporairement en `DEBUG` pour résoudre des problèmes spécifiques
90
- 5. **Évitez les logs inutiles** : Ne laissez pas de logs de débogage en production
91
-
92
- ## Dépannage
93
-
94
- ### Problème : Mes logs ne s'affichent pas
95
-
96
- 1. Vérifiez que le niveau de log est correctement défini :
97
-
98
- ```javascript
99
- import { setLogLevel } from './index.js';
100
- setLogLevel('DEBUG'); // Pour voir tous les logs
101
- ```
102
-
103
- 2. Vérifiez que vous utilisez la bonne fonction de log :
104
- - `log()` et `info()` : Niveau INFO (1)
105
- - `debug()` : Niveau DEBUG (0)
106
- - `warn()` : Niveau WARN (2)
107
- - `error()` : Niveau ERROR (3)
108
-
109
- ### Problème : Trop de logs en production
110
-
111
- Augmentez le niveau de log pour réduire le bruit :
112
-
113
- ```javascript
114
- // En production
115
- setLogLevel('WARN'); // N'affiche que les avertissements et erreurs
116
- ```
117
-
118
- ### Problème : Les logs sont désactivés
119
-
120
- Vérifiez que le niveau n'est pas défini sur `NONE` :
121
-
122
- ```javascript
123
- setLogLevel('INFO'); // Réactive les logs d'information et supérieurs
124
- ```
125
-
126
- ## Conclusion
127
-
128
- La gestion des niveaux de log est un outil puissant pour maintenir et déboguer vos applications. En utilisant correctement les différents niveaux, vous pouvez garder une trace utile de ce qui se passe dans votre application sans être submergé par trop d'informations.
package/README.fr.md DELETED
@@ -1,360 +0,0 @@
1
- # ChromaLogger
2
-
3
- [![npm version](https://img.shields.io/npm/v/chromalogger.svg?style=flat)](https://www.npmjs.com/package/chromalogger)
4
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
- [![GitHub stars](https://img.shields.io/github/stars/OrssiMp/chromalogger.svg?style=social)](https://github.com/OrssiMp/chromalogger/stargazers)
6
-
7
- [🇬🇧 English](README.md) | [🇫🇷 Français](README.fr.md)
8
-
9
- ChromaLogger est une bibliothèque Node.js puissante et flexible pour la journalisation de console avec un support avancé des couleurs, des styles et des fonctionnalités de débogage. Parfaite pour le développement et le débogage d'applications Node.js.
10
-
11
- ## 🚀 Fonctionnalités
12
-
13
- - 🌈 Support avancé des couleurs et styles (16+ couleurs, formatage de texte)
14
- - 📊 Niveaux de log intégrés (DEBUG, INFO, WARN, ERROR)
15
- - 🔄 Détection des références circulaires
16
- - 📝 Support des templates avec placeholders
17
- - 🛠️ Création de loggers personnalisés
18
- - 💻 Utilisation en ligne de commande avec `clog`
19
- - 🔌 Architecture extensible et API simple
20
-
21
- ## 📦 Installation
22
-
23
- ```bash
24
- # Avec npm
25
- npm install chromalogger
26
-
27
- # Ou avec Yarn
28
- yarn add chromalogger
29
- ```
30
-
31
- ## 💡 Démarrage Rapide
32
-
33
- ```javascript
34
- import { log, info, warn, error, createLogger } from 'chromalogger';
35
-
36
- // Utilisation de base
37
- log('Ceci est un message de log');
38
- info('Message informatif');
39
- warn('Message d\'avertissement');
40
- error('Message d\'erreur');
41
-
42
- // Avec styles
43
- const success = createLogger('green', 'bold');
44
- success('Opération réussie !');
45
-
46
- // Templates avec placeholders
47
- const utilisateur = { nom: 'Alice', age: 30 };
48
- info('L\'utilisateur {0} a {1} ans', utilisateur.nom, utilisateur.age);
49
-
50
- // Styles en ligne
51
- import { red, bgYellow, bold } from 'chromalogger';
52
- console.log(red('Texte en rouge') + ' et ' + bgYellow('fond jaune'));
53
- ```
54
-
55
- ## 📚 Documentation
56
-
57
- ### Niveaux de Log
58
-
59
- ChromaLogger définit 5 niveaux de log, du plus bas au plus élevé :
60
-
61
- | Niveau | Valeur | Description |
62
- | ------- | ------ | -------------------------------------------------------- |
63
- | `DEBUG` | 0 | Messages détaillés pour le débogage |
64
- | `INFO` | 1 | Informations générales sur le déroulement du programme |
65
- | `WARN` | 2 | Situations potentiellement problématiques |
66
- | `ERROR` | 3 | Erreurs qui n'empêchent pas l'application de fonctionner |
67
- | `NONE` | 4 | Aucun log ne sera affiché |
68
-
69
- ### Fonctions Principales
70
-
71
- #### `createLogger(...styles)`
72
-
73
- Crée un nouveau logger personnalisé avec les styles spécifiés.
74
-
75
- ```javascript
76
- const header = createLogger('bgBlue', 'white', 'bold');
77
- header('En-tête important');
78
- ```
79
-
80
- #### `setLogLevel(level)`
81
-
82
- Définit le niveau de log minimum à afficher.
83
-
84
- ```javascript
85
- setLogLevel('DEBUG'); // Affiche tout
86
- setLogLevel('WARN'); // Affiche uniquement WARN et ERROR
87
- ```
88
-
89
- ### Styles Disponibles
90
-
91
- #### Couleurs de texte
92
- - `black`, `red`, `green`, `yellow`, `blue`, `magenta`, `cyan`, `white`
93
-
94
- #### Arrière-plans
95
- - `bgBlack`, `bgRed`, `bgGreen`, `bgYellow`, `bgBlue`, `bgMagenta`, `bgCyan`, `bgWhite`
96
-
97
- #### Styles de texte
98
- - `bright` - Texte en gras
99
- - `dim` - Texte atténué
100
- - `italic` - Texte en italique
101
- - `underline` - Texte souligné
102
- - `blink` - Texte clignotant
103
- - `reverse` - Inverse les couleurs
104
- - `hidden` - Texte caché
105
- - `strikethrough` - Texte barré
106
-
107
- ## 🤝 Contribution
108
-
109
- Les contributions sont les bienvenues ! Pour contribuer :
110
-
111
- 1. Forkez le dépôt
112
- 2. Créez une branche pour votre fonctionnalité (`git checkout -b feature/ma-fonctionnalite`)
113
- 3. Committez vos changements (`git commit -am 'Ajouter une fonctionnalité'`)
114
- 4. Poussez vers la branche (`git push origin feature/ma-fonctionnalite`)
115
- 5. Ouvrez une Pull Request
116
-
117
- ## 📄 Licence
118
-
119
- Ce projet est sous licence MIT - voir le fichier [LICENCE](LICENSE) pour plus de détails.
120
-
121
- ## 🙏 Remerciements
122
-
123
- - Inspiré par des bibliothèques populaires comme chalk, winston et debug
124
- - Merci à tous les contributeurs qui ont aidé à améliorer ce projet
125
- # Afficher l'aide
126
- ## 🛠️ Interface en Ligne de Commande (CLI)
127
-
128
- ChromaLogger inclut un utilitaire en ligne de commande `clog` :
129
-
130
- ```bash
131
- # Afficher l'aide
132
- npx clog --help
133
-
134
- # Afficher un message simple
135
- npx clog "Mon message"
136
-
137
- # Utiliser des couleurs et styles
138
- npx clog --color red --style bright "Message important"
139
-
140
- ## 🔍 Exemples Complets
141
-
142
- ### Configuration d'un logger personnalisé
143
-
144
- ```javascript
145
- import { createLogger, setLogLevel } from 'chromalogger';
146
-
147
- // Créer des loggers personnalisés
148
- const success = createLogger('green', 'bright');
149
- const error = createLogger('red', 'bold');
150
- const debug = createLogger('blue', 'dim');
151
-
152
- // Définir le niveau de log
153
- setLogLevel('DEBUG');
154
-
155
- // Utilisation
156
- success('Connexion réussie !');
157
- error('Échec de la connexion');
158
- debug('État de la connexion:', { status: 'connected', time: Date.now() });
159
- ```
160
-
161
- ### Journalisation dans une application Express
162
-
163
- ```javascript
164
- import express from 'express';
165
- import { createLogger } from 'chromalogger';
166
-
167
- const app = express();
168
- const logger = createLogger('magenta');
169
- const errorLogger = createLogger('red', 'bold');
170
-
171
- app.use((req, res, next) => {
172
- logger(`${req.method} ${req.url}`);
173
- next();
174
- });
175
-
176
- app.get('/', (req, res) => {
177
- res.send('Bienvenue sur mon API');
178
- });
179
-
180
- // Gestion des erreurs
181
- app.use((err, req, res, next) => {
182
- errorLogger('ERREUR:', err.message);
183
- res.status(500).send('Quelque chose a mal tourné !');
184
- });
185
-
186
- app.listen(3000, () => {
187
- logger('Serveur démarré sur http://localhost:3000');
188
- });
189
- ```
190
-
191
- ## 📝 Bonnes Pratiques
192
-
193
- 1. **Environnement de développement** : Utilisez `DEBUG` pour avoir un maximum d'informations
194
- 2. **Environnement de production** : Utilisez `WARN` ou `ERROR` pour éviter la surcharge de logs
195
- 3. **Créer des loggers spécifiques** : Utilisez `createLogger()` pour des catégories de logs différentes
196
- 4. **Éviter les logs sensibles** : Ne loguez jamais de mots de passe ou informations sensibles
197
- 5. **Utiliser les bons niveaux** :
198
- - `debug` pour le débogage détaillé
199
- - `info` pour les informations importantes
200
- - `warn` pour les avertissements
201
- - `error` pour les erreurs
202
-
203
- ## 📄 Licence
204
-
205
- MIT © [Votre Nom]
206
-
207
- Pour plus d'informations sur les fonctionnalités avancées, consultez la [documentation complète](https://github.com/OrssiMp/chromalogger#readme).
208
-
209
- ## 🤝 Contribuer
210
-
211
- Les contributions sont les bienvenues ! Voici comment contribuer :
212
-
213
- 1. Forkez le projet
214
- 2. Créez une branche pour votre fonctionnalité (`git checkout -b feature/AmazingFeature`)
215
- 3. Committez vos changements (`git commit -m 'Add some AmazingFeature'`)
216
- 4. Poussez vers la branche (`git push origin feature/AmazingFeature`)
217
- 5. Ouvrez une Pull Request
218
-
219
- ## 📄 Licence
220
-
221
- Distribué sous licence MIT. Voir le fichier `LICENSE` pour plus d'informations.
222
-
223
- ## 📞 Contact
224
-
225
- Orssi Mp - [@OrssiMp](https://github.com/OrssiMp) - orssimpiere5@gmail.com
226
-
227
- Lien du projet : [https://github.com/OrssiMp/chromalogger](https://github.com/OrssiMp/chromalogger)
228
-
229
- // Couleurs de base
230
- logger.red('Ceci est en rouge');
231
- logger.green('Ceci est en vert');
232
- logger.blue('Ceci est en bleu');
233
- logger.yellow('Ceci est en jaune');
234
-
235
- ````
236
-
237
- ### Avec CommonJS
238
-
239
- ```javascript
240
- const logger = require('logcolor-js');
241
-
242
- // Arrière-plans colorés
243
- logger.bgRed(' Fond rouge ');
244
- logger.bgGreen(' Fond vert ');
245
- logger.bgBlue(' Fond bleu ');
246
- ````
247
-
248
- ## Fonctionnalités
249
-
250
- ### Couleurs de texte
251
-
252
- - `red(text)` - Texte rouge
253
- - `green(text)` - Texte vert
254
- - `blue(text)` - Texte bleu
255
- - `yellow(text)` - Texte jaune
256
- - `white(text)` - Texte blanc
257
- - `black(text)` - Texte noir
258
- - `magenta(text)` - Texte magenta
259
- - `cyan(text)` - Texte cyan
260
-
261
- ### Arrière-plans
262
-
263
- - `bgRed(text)` - Fond rouge
264
- - `bgGreen(text)` - Fond vert
265
- - `bgBlue(text)` - Fond bleu
266
- - `bgYellow(text)` - Fond jaune
267
- - `bgWhite(text)` - Fond blanc
268
- - `bgBlack(text)` - Fond noir
269
- - `bgMagenta(text)` - Fond magenta
270
- - `bgCyan(text)` - Fond cyan
271
-
272
- ### Styles de texte
273
-
274
- - `bold(text)` - Texte en gras
275
- - `underline(text)` - Texte souligné
276
- - `italic(text)` - Texte en italique
277
- - `inverse(text)` - Inverse les couleurs
278
- - `strikethrough(text)` - Texte barré
279
-
280
- ### Niveaux de log
281
-
282
- - `setLogLevel(level)` - Définit le niveau de log ('DEBUG', 'INFO', 'WARN', 'ERROR')
283
- - `debug(...args)` - Message de débogage
284
- - `info(...args)` - Information
285
- - `warn(...args)` - Avertissement
286
- - `error(...args)` - Erreur
287
- - `success(...args)` - Succès (alias pour info avec icône de succès)
288
- - `warning(...args)` - Avertissement (alias pour warn avec icône d'avertissement)
289
-
290
- ## Exemples avancés
291
-
292
- ### Combinaison de styles
293
-
294
- ```javascript
295
- // Combinaison de styles
296
- logger.bold(logger.red('Texte en gras et rouge'));
297
- logger.bgBlue(logger.white('Texte blanc sur fond bleu'));
298
- ```
299
-
300
- ### Niveaux de log
301
-
302
- ```javascript
303
- // Définir le niveau de log (par défaut: 'INFO')
304
- logger.setLogLevel('DEBUG');
305
-
306
- // Messages de log
307
- logger.debug('Message de débogage');
308
- logger.info('Information');
309
- logger.warn('Avertissement');
310
- logger.error('Erreur');
311
- ```
312
-
313
- ### Avec des objets et tableaux
314
-
315
- ```javascript
316
- // Objets
317
- const user = {
318
- name: 'John',
319
- age: 30,
320
- roles: ['admin', 'user'],
321
- };
322
- logger.info('Utilisateur:', user);
323
-
324
- // Tableaux
325
- const numbers = [1, 2, 3, 4, 5];
326
- logger.info('Nombres:', numbers);
327
-
328
- // Références circulaires
329
- const obj1 = { name: 'Objet 1' };
330
- const obj2 = { name: 'Objet 2', ref: obj1 };
331
- obj1.ref = obj2;
332
- logger.info('Objet avec référence circulaire:', obj1);
333
- ```
334
-
335
- ## Personnalisation
336
-
337
- ### Styles personnalisés
338
-
339
- ```javascript
340
- // Accès direct aux codes ANSI
341
- console.log(
342
- `${logger.styles.bold}${logger.styles.red}Texte en gras et rouge${logger.styles.reset}`
343
- );
344
- ```
345
-
346
- ### Templates
347
-
348
- ```javascript
349
- const name = 'Alice';
350
- const age = 30;
351
- logger.info('Nom: {0}, Âge: {1}', name, age);
352
- ```
353
-
354
- ## Contribution
355
-
356
- Les contributions sont les bienvenues ! N'hésitez pas à ouvrir une issue ou une pull request.
357
-
358
- ## Licence
359
-
360
- MIT
package/chromalog.js DELETED
@@ -1,77 +0,0 @@
1
- /**
2
- * Chromalog - A colorful console logger with formatting and styling
3
- * @module chromalog
4
- */
5
-
6
- // Import core modules
7
- import * as styles from './core/styles.js';
8
-
9
- // Import logger functions
10
- import {
11
- createLogger,
12
- formatMessage,
13
- setLogLevel,
14
- LOG_LEVELS,
15
- } from './core/loggers/consoleLogger.js';
16
-
17
- // Import formatters
18
- import { formatObject } from './core/formatters/objectFormatter.js';
19
-
20
- // Import chroma utility
21
- import chroma from './utils/chroma.js';
22
-
23
- // Create default logger instances
24
- const log = createLogger();
25
- const debug = createLogger('dim');
26
- const info = createLogger('blue');
27
- const warn = createLogger('yellow');
28
- const error = createLogger('red');
29
-
30
- // Main chromalog object
31
- const chromalog = {
32
- // Core
33
- styles,
34
- chroma,
35
-
36
- // Main logger methods
37
- createLogger,
38
- formatMessage,
39
- formatObject,
40
- setLogLevel,
41
-
42
- // Log levels
43
- LOG_LEVELS,
44
-
45
- // Pre-configured loggers
46
- log,
47
- debug,
48
- info,
49
- warn,
50
- error,
51
- };
52
-
53
- // Export everything
54
- export {
55
- // Core
56
- styles,
57
- chroma,
58
-
59
- // Main logger methods
60
- createLogger,
61
- formatMessage,
62
- formatObject,
63
- setLogLevel,
64
-
65
- // Log levels
66
- LOG_LEVELS,
67
-
68
- // Pre-configured loggers
69
- log,
70
- debug,
71
- info,
72
- warn,
73
- error,
74
-
75
- // Default export
76
- chromalog as default,
77
- };
package/cli.js DELETED
@@ -1,87 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- console.log('Démarrage du CLI...'); // Debug
4
-
5
- import { createLogger } from './chromalog.js';
6
- import fs from 'fs';
7
- import { fileURLToPath } from 'url';
8
- import path from 'path';
9
-
10
- console.log('Chargement des modules terminé'); // Debug
11
-
12
- function showHelp() {
13
- const helpText = `
14
- Utilisation : clog [options] <message>
15
-
16
- Options :
17
- --color <couleur> Couleur du texte (red, green, blue, etc.)
18
- --style <styles> Styles (séparés par des virgules)
19
- -v, --version Affiche la version
20
- -h, --help Affiche cette aide
21
-
22
- Exemples :
23
- $ npx clog --color red --style bright "Attention !"
24
- $ npx clog --color green "Opération réussie"
25
- `;
26
- console.log(helpText);
27
- }
28
-
29
- function main() {
30
- console.log('Début de la fonction main'); // Debug
31
- const args = process.argv.slice(2);
32
- console.log('Arguments:', args); // Debug
33
-
34
- // Afficher l'aide
35
- if (args.length === 0 || args.includes('--help') || args.includes('-h') || args.includes('-V')) {
36
- return showHelp();
37
- }
38
-
39
- // Afficher la version
40
- if (args.includes('--version') || args.includes('-v')) {
41
- const __filename = fileURLToPath(import.meta.url);
42
- const __dirname = path.dirname(__filename);
43
- const pkg = JSON.parse(fs.readFileSync(path.join(__dirname, 'package.json'), 'utf8'));
44
- return console.log(pkg.version);
45
- }
46
-
47
- // Traitement des arguments de couleur et de style
48
- let messageParts = [];
49
- let color = 'white';
50
- let styles = [];
51
-
52
- for (let i = 0; i < args.length; i++) {
53
- const arg = args[i];
54
-
55
- if (arg === '--color' && args[i + 1]) {
56
- color = args[++i];
57
- } else if (arg === '--style' && args[i + 1]) {
58
- styles = args[++i].split(',').map((s) => s.trim());
59
- } else if (!arg.startsWith('--')) {
60
- messageParts.push(arg);
61
- }
62
- }
63
-
64
- const message = messageParts.join(' ');
65
-
66
- if (!message) {
67
- console.error('Erreur: Aucun message fourni');
68
- return showHelp();
69
- }
70
-
71
- try {
72
- // Créer et utiliser le logger
73
- const logger = createLogger(color, ...styles);
74
- logger(message);
75
- } catch (error) {
76
- console.error('Erreur:', error.message);
77
- console.log('\nCouleurs disponibles: red, green, blue, yellow, magenta, cyan, white');
78
- console.log(
79
- 'Styles disponibles: bright, dim, italic, underline, blink, reverse, hidden, strikethrough'
80
- );
81
- }
82
- }
83
-
84
- // Exécuter le CLI
85
- if (process.argv[1] && process.argv[1].endsWith('cli.js')) {
86
- main();
87
- }