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/LICENSE +1 -1
- package/README.md +77 -43
- package/index.js +10 -61
- package/package.json +10 -25
- package/.eslintrc.json +0 -18
- package/.prettierrc +0 -9
- package/CHROMA.md +0 -253
- package/CONTRIBUTING.md +0 -43
- package/INFO.md +0 -128
- package/README.fr.md +0 -360
- package/chromalog.js +0 -77
- package/cli.js +0 -87
- package/core/formatters/objectFormatter.js +0 -131
- package/core/loggers/consoleLogger.js +0 -218
- package/core/styles.js +0 -75
- package/core/utils/validate.js +0 -45
- package/test.js +0 -159
- package/utils/chroma.js +0 -42
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
|
-
[](https://www.npmjs.com/package/chromalogger)
|
|
4
|
-
[](https://opensource.org/licenses/MIT)
|
|
5
|
-
[](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
|
-
}
|