Comment avoir des logs de couleur?
Tags: bash, go, tutorial, productivity
Published: 2023-05-08 13:34:00

Travailler avec des scripts c'est toujours très utile dans un objectif d'automatisation. La plupart de ces scripts génèrent beaucoup de logs pour qu'on puisse suivre ce qu'il s'y passe, mais avoir autant de logs de la même couleur n'aide pas à pouvoir trouver en un coup d'oeil les quelques informations qui nous intéressent.

C'est pour ça qu'aujourd'hui on va voir comment mettre de la couleur dans vos logs pour vous faciliter les choses!

---

## Comment faire?
*Dans cet exemple, le code sera en Go, mais ça fonctionnera pour tous les systèmes affichant leurs logs dans une console Bash.*

Pour pouvoir changer la couleur d'un texte, il suffit juste de rajouter quelque chose ressemblant à ça : `\033[31m`

En effet, c'est cette petite suite de caractères qui va permettre de changer de couleur. Les deux derniers chiffres étant ceux qui définissent la couleur. Dans cet exemple, c'est la couleur rouge qui a été choisie.

### Exemple avec les différentes couleurs

```go
package main

var Reset = "\033[0m" 
var Red = "\033[31m" 
var Green = "\033[32m" 
var Yellow = "\033[33m" 
var Blue = "\033[34m" 
var Purple = "\033[35m" 
var Cyan = "\033[36m" 
var Gray = "\033[37m" 
var White = "\033[97m"

func main() { 
	println(White + "This is White" + Reset) 
	println(Red + "This is Red" + Reset) 
	println(Green + "This is Green" + Reset) 
	println(Yellow + "This is Yellow" + Reset) 
	println(Blue + "This is Blue" + Reset) 
	println(Purple + "This is Purple" + Reset) 
	println(Cyan + "This is Cyan" + Reset) 
	println(Gray + "This is Gray" + Reset) 
}
```


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vocxyi72t000aiit3ec6.png)



En voyant cet exemple, vous devez sûrement vous demander pourquoi il y a des `Reset` à la fin de chaque println. 

La réponse est simple : c'est une bonne pratique pour éviter des problèmes de couleur dans vos logs. En  effet si vous ne mettez pas le `Reset` et que vous continuez d'écrire d'autres logs, la dernière couleur que  vous avez définie va être conservée pour les prochains logs. Ce qui *(si vous oubliez aussi de définir une autre couleur)* peut donner quelque chose comme ça.

```go
package main

var Reset = "\033[0m" 
var Red = "\033[31m" 
var Green = "\033[32m" 
var Yellow = "\033[33m" 
var Blue = "\033[34m" 
var Purple = "\033[35m" 
var Cyan = "\033[36m" 
var Gray = "\033[37m" 
var White = "\033[97m"

func main() { 
	println(White + "This is White") 
	println("This is Red" + Reset) 
	println(Green + "This is Green" + Reset) 
	println(Yellow + "This is Yellow") 
	println("This is Blue" + Reset) 
	println(Purple + "This is Purple" + Reset) 
	println(Cyan + "This is Cyan" + Reset) 
	println(Gray + "This is Gray" + Reset) 
}

```


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aeskq6nmv1zji2odkphk.png)



## Conclusion
En conclusion, vous avez pu voir comment avoir simplement des logs de couleur, ce qui, je l'espère, vous simplifiera la lecture des logs de vos prochains pipelines et/ou scripts!

---

<center><h3>Vous voulez me supporter?</h3></center>
<a href="https://www.buymeacoffee.com/mxguilbert7" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/default-orange.png" alt="Buy Me A Coffee" height="41" width="174"></a>