1+ package main
2+
3+ import (
4+ "fmt"
5+ "log"
6+ "os"
7+ "time"
8+ )
9+
10+ const (
11+ colorReset = "\033 [0m"
12+ colorRed = "\033 [31m"
13+ colorGreen = "\033 [32m"
14+ colorYellow = "\033 [33m"
15+ colorBlue = "\033 [34m"
16+ colorPurple = "\033 [35m"
17+ colorCyan = "\033 [36m"
18+ )
19+
20+ type Logger struct {
21+ logger * log.Logger
22+ }
23+
24+ func New () * Logger {
25+ return & Logger {
26+ logger : log .New (os .Stdout , "" , 0 ),
27+ }
28+ }
29+
30+ func (l * Logger ) formatMessage (level , format string , args ... interface {}) string {
31+ timestamp := time .Now ().Format ("2006-01-02 15:04:05" )
32+ message := fmt .Sprintf (format , args ... )
33+ return fmt .Sprintf ("%s [%s] %s" , timestamp , level , message )
34+ }
35+
36+ func (l * Logger ) Log (format string , args ... interface {}) {
37+ msg := l .formatMessage ("LOG" , format , args ... )
38+ l .logger .Printf ("%s" , msg )
39+ }
40+
41+ func (l * Logger ) Success (format string , args ... interface {}) {
42+ msg := l .formatMessage ("SUCCESS" , format , args ... )
43+ l .logger .Printf ("%s%s%s" , colorGreen , msg , colorReset )
44+ }
45+
46+ func (l * Logger ) Warn (format string , args ... interface {}) {
47+ msg := l .formatMessage ("WARNING" , format , args ... )
48+ l .logger .Printf ("%s%s%s" , colorYellow , msg , colorReset )
49+ }
50+
51+ func (l * Logger ) Error (format string , args ... interface {}) {
52+ msg := l .formatMessage ("ERROR" , format , args ... )
53+ l .logger .Printf ("%s%s%s" , colorRed , msg , colorReset )
54+ }
55+
56+ func (l * Logger ) Info (format string , args ... interface {}) {
57+ msg := l .formatMessage ("INFO" , format , args ... )
58+ l .logger .Printf ("%s%s%s" , colorBlue , msg , colorReset )
59+ }
60+
61+ func (l * Logger ) Debug (format string , args ... interface {}) {
62+ msg := l .formatMessage ("DEBUG" , format , args ... )
63+ l .logger .Printf ("%s%s%s" , colorCyan , msg , colorReset )
64+ }
65+
66+ func (l * Logger ) Fatal (format string , args ... interface {}) {
67+ msg := l .formatMessage ("FATAL" , format , args ... )
68+ l .logger .Fatalf ("%s%s%s" , colorPurple , msg , colorReset )
69+ }
0 commit comments