mirror of
https://github.com/gogrlx/nats-server.git
synced 2026-04-02 03:38:42 -07:00
99 lines
1.5 KiB
Go
99 lines
1.5 KiB
Go
// Copyright 2012 Apcera Inc. All rights reserved.
|
|
|
|
package server
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"strings"
|
|
)
|
|
|
|
// logging functionality, compatible with original nats-server
|
|
|
|
var trace bool
|
|
var debug bool
|
|
|
|
func LogSetup() {
|
|
log.SetFlags(0)
|
|
}
|
|
|
|
func (s *Server) LogInit() {
|
|
if s.opts.Logtime {
|
|
log.SetFlags(log.LstdFlags)
|
|
}
|
|
if s.opts.Trace {
|
|
Log(s.opts)
|
|
}
|
|
if s.opts.Debug {
|
|
debug = true
|
|
Log("DEBUG is on")
|
|
}
|
|
if s.opts.Trace {
|
|
trace = true
|
|
Log("TRACE is on")
|
|
}
|
|
}
|
|
|
|
func alreadyFormatted(s string) bool {
|
|
return strings.HasPrefix(s, "[")
|
|
}
|
|
|
|
func logStr(v []interface{}) string {
|
|
args := make([]string, 0, len(v))
|
|
for _, vt := range v {
|
|
switch t := vt.(type) {
|
|
case string:
|
|
if alreadyFormatted(t) {
|
|
args = append(args, t)
|
|
} else {
|
|
t = strings.Replace(t, "\"", "\\\"", -1)
|
|
args = append(args, fmt.Sprintf("\"%s\"", t))
|
|
}
|
|
default:
|
|
args = append(args, fmt.Sprintf("%+v", vt))
|
|
}
|
|
}
|
|
return fmt.Sprintf("[%s]", strings.Join(args,", "))
|
|
}
|
|
|
|
func Log(v ...interface{}) {
|
|
log.Print(logStr(v))
|
|
}
|
|
|
|
func Logf(format string, v ...interface{}) {
|
|
Log(fmt.Sprintf(format, v...))
|
|
}
|
|
|
|
func Fatal(v ...interface{}) {
|
|
log.Fatalf(logStr(v))
|
|
}
|
|
|
|
func Fatalf(format string, v ...interface{}) {
|
|
Fatal(fmt.Sprintf(format, v...))
|
|
}
|
|
|
|
func Debug(v ...interface{}) {
|
|
if debug {
|
|
Log(v...)
|
|
}
|
|
}
|
|
|
|
func DebugF(format string, v ...interface{}) {
|
|
if debug {
|
|
Debug(fmt.Sprintf(format, v...))
|
|
}
|
|
}
|
|
|
|
func Trace(v ...interface{}) {
|
|
if trace {
|
|
Log(v...)
|
|
}
|
|
}
|
|
|
|
func TraceF(format string, v ...interface{}) {
|
|
if trace {
|
|
Trace(fmt.Sprintf(format, v...))
|
|
}
|
|
}
|
|
|