117 lines
2.6 KiB
Go
117 lines
2.6 KiB
Go
package raft
|
|
|
|
import (
|
|
"log"
|
|
"os"
|
|
)
|
|
|
|
//------------------------------------------------------------------------------
|
|
//
|
|
// Variables
|
|
//
|
|
//------------------------------------------------------------------------------
|
|
|
|
const (
|
|
Debug = 1
|
|
Trace = 2
|
|
)
|
|
|
|
var logLevel int = 0
|
|
var logger *log.Logger
|
|
|
|
func init() {
|
|
logger = log.New(os.Stdout, "[raft]", log.Lmicroseconds)
|
|
}
|
|
|
|
//------------------------------------------------------------------------------
|
|
//
|
|
// Functions
|
|
//
|
|
//------------------------------------------------------------------------------
|
|
|
|
func LogLevel() int {
|
|
return logLevel
|
|
}
|
|
|
|
func SetLogLevel(level int) {
|
|
logLevel = level
|
|
}
|
|
|
|
//--------------------------------------
|
|
// Warnings
|
|
//--------------------------------------
|
|
|
|
// Prints to the standard logger. Arguments are handled in the manner of
|
|
// fmt.Print.
|
|
func warn(v ...interface{}) {
|
|
logger.Print(v...)
|
|
}
|
|
|
|
// Prints to the standard logger. Arguments are handled in the manner of
|
|
// fmt.Printf.
|
|
func warnf(format string, v ...interface{}) {
|
|
logger.Printf(format, v...)
|
|
}
|
|
|
|
// Prints to the standard logger. Arguments are handled in the manner of
|
|
// fmt.Println.
|
|
func warnln(v ...interface{}) {
|
|
logger.Println(v...)
|
|
}
|
|
|
|
//--------------------------------------
|
|
// Basic debugging
|
|
//--------------------------------------
|
|
|
|
// Prints to the standard logger if debug mode is enabled. Arguments
|
|
// are handled in the manner of fmt.Print.
|
|
func debug(v ...interface{}) {
|
|
if logLevel >= Debug {
|
|
logger.Print(v...)
|
|
}
|
|
}
|
|
|
|
// Prints to the standard logger if debug mode is enabled. Arguments
|
|
// are handled in the manner of fmt.Printf.
|
|
func debugf(format string, v ...interface{}) {
|
|
if logLevel >= Debug {
|
|
logger.Printf(format, v...)
|
|
}
|
|
}
|
|
|
|
// Prints to the standard logger if debug mode is enabled. Arguments
|
|
// are handled in the manner of fmt.Println.
|
|
func debugln(v ...interface{}) {
|
|
if logLevel >= Debug {
|
|
logger.Println(v...)
|
|
}
|
|
}
|
|
|
|
//--------------------------------------
|
|
// Trace-level debugging
|
|
//--------------------------------------
|
|
|
|
// Prints to the standard logger if trace debugging is enabled. Arguments
|
|
// are handled in the manner of fmt.Print.
|
|
func trace(v ...interface{}) {
|
|
if logLevel >= Trace {
|
|
logger.Print(v...)
|
|
}
|
|
}
|
|
|
|
// Prints to the standard logger if trace debugging is enabled. Arguments
|
|
// are handled in the manner of fmt.Printf.
|
|
func tracef(format string, v ...interface{}) {
|
|
if logLevel >= Trace {
|
|
logger.Printf(format, v...)
|
|
}
|
|
}
|
|
|
|
// Prints to the standard logger if trace debugging is enabled. Arguments
|
|
// are handled in the manner of debugln.
|
|
func traceln(v ...interface{}) {
|
|
if logLevel >= Trace {
|
|
logger.Println(v...)
|
|
}
|
|
}
|