github.com/MetalBlockchain/metalgo@v1.11.9/utils/logging/color.go (about)

     1  // Copyright (C) 2019-2024, Ava Labs, Inc. All rights reserved.
     2  // See the file LICENSE for licensing terms.
     3  
     4  package logging
     5  
     6  type Color string
     7  
     8  // Colors
     9  const (
    10  	Black       Color = "\033[0;30m"
    11  	DarkGray    Color = "\033[1;30m"
    12  	Red         Color = "\033[0;31m"
    13  	LightRed    Color = "\033[1;31m"
    14  	Green       Color = "\033[0;32m"
    15  	LightGreen  Color = "\033[1;32m"
    16  	Orange      Color = "\033[0;33m"
    17  	Yellow      Color = "\033[1;33m"
    18  	Blue        Color = "\033[0;34m"
    19  	LightBlue   Color = "\033[1;34m"
    20  	Purple      Color = "\033[0;35m"
    21  	LightPurple Color = "\033[1;35m"
    22  	Cyan        Color = "\033[0;36m"
    23  	LightCyan   Color = "\033[1;36m"
    24  	LightGray   Color = "\033[0;37m"
    25  	White       Color = "\033[1;37m"
    26  
    27  	Reset   Color = "\033[0;0m"
    28  	Bold    Color = "\033[;1m"
    29  	Reverse Color = "\033[;7m"
    30  )
    31  
    32  var (
    33  	levelToColor = map[Level]Color{
    34  		Fatal: Red,
    35  		Error: Orange,
    36  		Warn:  Yellow,
    37  		// Rather than using white, use the default to better support terminals
    38  		// with a white background.
    39  		Info:  Reset,
    40  		Trace: LightPurple,
    41  		Debug: LightBlue,
    42  		Verbo: LightGreen,
    43  	}
    44  
    45  	levelToCapitalColorString = make(map[Level]string, len(levelToColor))
    46  	unknownLevelColor         = Reset
    47  )
    48  
    49  func (lc Color) Wrap(text string) string {
    50  	return string(lc) + text + string(Reset)
    51  }
    52  
    53  func init() {
    54  	for level, color := range levelToColor {
    55  		levelToCapitalColorString[level] = color.Wrap(level.String())
    56  	}
    57  }