github.com/amitbet/vnc2video@v0.0.0-20190616012314-9d50b9dab1d9/logger/logger.go (about)

     1  package logger
     2  
     3  import "fmt"
     4  
     5  var simpleLogger = SimpleLogger{LogLevelWarn}
     6  
     7  type Logger interface {
     8  	Trace(v ...interface{})
     9  	Tracef(format string, v ...interface{})
    10  	Debug(v ...interface{})
    11  	Debugf(format string, v ...interface{})
    12  	Info(v ...interface{})
    13  	Infof(format string, v ...interface{})
    14  	DebugfNoCR(format string, v ...interface{})
    15  	Warn(v ...interface{})
    16  	Warnf(format string, v ...interface{})
    17  	Error(v ...interface{})
    18  	Errorf(format string, v ...interface{})
    19  	Fatal(v ...interface{})
    20  	Fatalf(format string, v ...interface{})
    21  }
    22  type LogLevel int
    23  
    24  const (
    25  	LogLevelTrace LogLevel = iota
    26  	LogLevelDebug
    27  	LogLevelInfo
    28  	LogLevelWarn
    29  	LogLevelError
    30  	LogLevelFatal
    31  )
    32  
    33  type SimpleLogger struct {
    34  	level LogLevel
    35  }
    36  
    37  func (sl *SimpleLogger) Trace(v ...interface{}) {
    38  	if sl.level <= LogLevelTrace {
    39  		arr := []interface{}{"[Trace]"}
    40  		for _, item := range v {
    41  			arr = append(arr, item)
    42  		}
    43  
    44  		fmt.Println(arr...)
    45  	}
    46  }
    47  func (sl *SimpleLogger) Tracef(format string, v ...interface{}) {
    48  	if sl.level <= LogLevelTrace {
    49  		fmt.Printf("[Trace] "+format+"\n", v...)
    50  	}
    51  }
    52  
    53  func (sl *SimpleLogger) Debug(v ...interface{}) {
    54  	if sl.level <= LogLevelDebug {
    55  		arr := []interface{}{"[Debug]"}
    56  		for _, item := range v {
    57  			arr = append(arr, item)
    58  		}
    59  
    60  		fmt.Println(arr...)
    61  	}
    62  }
    63  func (sl *SimpleLogger) Debugf(format string, v ...interface{}) {
    64  	if sl.level <= LogLevelDebug {
    65  		fmt.Printf("[Debug] "+format+"\n", v...)
    66  	}
    67  }
    68  func (sl *SimpleLogger) Info(v ...interface{}) {
    69  	if sl.level <= LogLevelInfo {
    70  		arr := []interface{}{"[Info ]"}
    71  		for _, item := range v {
    72  			arr = append(arr, item)
    73  		}
    74  		fmt.Println(arr...)
    75  	}
    76  }
    77  func (sl *SimpleLogger) DebugfNoCR(format string, v ...interface{}) {
    78  	if sl.level <= LogLevelDebug {
    79  		fmt.Printf("[Info ] "+format, v...)
    80  	}
    81  }
    82  
    83  func (sl *SimpleLogger) Infof(format string, v ...interface{}) {
    84  	if sl.level <= LogLevelInfo {
    85  		fmt.Printf("[Info ] "+format+"\n", v...)
    86  	}
    87  }
    88  func (sl *SimpleLogger) Warn(v ...interface{}) {
    89  	if sl.level <= LogLevelWarn {
    90  		arr := []interface{}{"[Warn ]"}
    91  		for _, item := range v {
    92  			arr = append(arr, item)
    93  		}
    94  		fmt.Println(arr...)
    95  	}
    96  }
    97  func (sl *SimpleLogger) Warnf(format string, v ...interface{}) {
    98  	if sl.level <= LogLevelWarn {
    99  		fmt.Printf("[Warn ] "+format+"\n", v...)
   100  	}
   101  }
   102  func (sl *SimpleLogger) Error(v ...interface{}) {
   103  	if sl.level <= LogLevelError {
   104  		arr := []interface{}{"[Error]"}
   105  		for _, item := range v {
   106  			arr = append(arr, item)
   107  		}
   108  		fmt.Println(arr...)
   109  	}
   110  }
   111  func (sl *SimpleLogger) Errorf(format string, v ...interface{}) {
   112  	if sl.level <= LogLevelError {
   113  		fmt.Printf("[Error] "+format+"\n", v...)
   114  	}
   115  }
   116  func (sl *SimpleLogger) Fatal(v ...interface{}) {
   117  	if sl.level <= LogLevelFatal {
   118  		arr := []interface{}{"[Fatal]"}
   119  		for _, item := range v {
   120  			arr = append(arr, item)
   121  		}
   122  		fmt.Println(arr...)
   123  
   124  	}
   125  }
   126  func (sl *SimpleLogger) Fatalf(format string, v ...interface{}) {
   127  	if sl.level <= LogLevelFatal {
   128  		fmt.Printf("[Fatal] "+format+"\n", v)
   129  	}
   130  }
   131  func Trace(v ...interface{}) {
   132  	simpleLogger.Trace(v...)
   133  }
   134  func Tracef(format string, v ...interface{}) {
   135  	simpleLogger.Tracef(format, v...)
   136  }
   137  
   138  func Debug(v ...interface{}) {
   139  	simpleLogger.Debug(v...)
   140  }
   141  func Debugf(format string, v ...interface{}) {
   142  	simpleLogger.Tracef(format, v...)
   143  }
   144  
   145  func Info(v ...interface{}) {
   146  	simpleLogger.Info(v...)
   147  }
   148  func Infof(format string, v ...interface{}) {
   149  	simpleLogger.Infof(format, v...)
   150  }
   151  func DebugfNoCR(format string, v ...interface{}) {
   152  	simpleLogger.DebugfNoCR(format, v...)
   153  }
   154  func Warn(v ...interface{}) {
   155  	simpleLogger.Warn(v...)
   156  }
   157  func Warnf(format string, v ...interface{}) {
   158  	simpleLogger.Warnf(format, v...)
   159  }
   160  
   161  func Error(v ...interface{}) {
   162  	simpleLogger.Error(v...)
   163  }
   164  func Errorf(format string, v ...interface{}) {
   165  	simpleLogger.Errorf(format, v...)
   166  }
   167  
   168  func Fatal(v ...interface{}) {
   169  	simpleLogger.Fatal(v...)
   170  }
   171  func Fatalf(format string, v ...interface{}) {
   172  	simpleLogger.Fatalf(format, v...)
   173  }