strip logger
This commit is contained in:
parent
5a52593e66
commit
e9efcbe8dc
@ -18,7 +18,10 @@ func (k *klog) Write(l log.Record) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (k *klog) Stream() (log.Stream, error) {
|
func (k *klog) Stream() (log.Stream, error) {
|
||||||
return &klogStreamer{}, nil
|
return &klogStreamer{
|
||||||
|
streamChan: make(chan log.Record),
|
||||||
|
stop: make(chan bool),
|
||||||
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// New returns a configured Kubernetes logger
|
// New returns a configured Kubernetes logger
|
||||||
|
@ -18,17 +18,23 @@ func write(l log.Record) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type klogStreamer struct {
|
type klogStreamer struct {
|
||||||
|
// the k8s log stream
|
||||||
streamChan chan log.Record
|
streamChan chan log.Record
|
||||||
|
// the stop chan
|
||||||
|
stop chan bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func (k *klogStreamer) Chan() <-chan log.Record {
|
func (k *klogStreamer) Chan() <-chan log.Record {
|
||||||
if k.streamChan == nil {
|
|
||||||
k.streamChan = make(chan log.Record)
|
|
||||||
}
|
|
||||||
return k.streamChan
|
return k.streamChan
|
||||||
}
|
}
|
||||||
|
|
||||||
func (k *klogStreamer) Stop() error {
|
func (k *klogStreamer) Stop() error {
|
||||||
|
select {
|
||||||
|
case <-k.stop:
|
||||||
|
return nil
|
||||||
|
default:
|
||||||
|
close(k.stop)
|
||||||
close(k.streamChan)
|
close(k.streamChan)
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
@ -1,35 +0,0 @@
|
|||||||
// Package log provides debug logging
|
|
||||||
package log
|
|
||||||
|
|
||||||
import (
|
|
||||||
"os"
|
|
||||||
)
|
|
||||||
|
|
||||||
// level is a log level
|
|
||||||
type Level int
|
|
||||||
|
|
||||||
const (
|
|
||||||
LevelFatal Level = iota
|
|
||||||
LevelError
|
|
||||||
LevelInfo
|
|
||||||
LevelWarn
|
|
||||||
LevelDebug
|
|
||||||
LevelTrace
|
|
||||||
)
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
switch os.Getenv("MICRO_LOG_LEVEL") {
|
|
||||||
case "trace":
|
|
||||||
DefaultLevel = LevelTrace
|
|
||||||
case "debug":
|
|
||||||
DefaultLevel = LevelDebug
|
|
||||||
case "warn":
|
|
||||||
DefaultLevel = LevelWarn
|
|
||||||
case "info":
|
|
||||||
DefaultLevel = LevelInfo
|
|
||||||
case "error":
|
|
||||||
DefaultLevel = LevelError
|
|
||||||
case "fatal":
|
|
||||||
DefaultLevel = LevelFatal
|
|
||||||
}
|
|
||||||
}
|
|
@ -6,17 +6,13 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
// DefaultLog logger
|
|
||||||
DefaultLog = NewLog()
|
|
||||||
// DefaultLevel is default log level
|
|
||||||
DefaultLevel = LevelInfo
|
|
||||||
// Default buffer size if any
|
// Default buffer size if any
|
||||||
DefaultSize = 1024
|
DefaultSize = 1024
|
||||||
// prefix for all messages
|
// DefaultLog logger
|
||||||
prefix string
|
DefaultLog = NewLog()
|
||||||
)
|
)
|
||||||
|
|
||||||
// Log is event log
|
// Log is debug log interface for reading and writing logs
|
||||||
type Log interface {
|
type Log interface {
|
||||||
// Read reads log entries from the logger
|
// Read reads log entries from the logger
|
||||||
Read(...ReadOption) ([]Record, error)
|
Read(...ReadOption) ([]Record, error)
|
||||||
@ -36,6 +32,7 @@ type Record struct {
|
|||||||
Metadata map[string]string `json:"metadata"`
|
Metadata map[string]string `json:"metadata"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Stream returns a log stream
|
||||||
type Stream interface {
|
type Stream interface {
|
||||||
Chan() <-chan Record
|
Chan() <-chan Record
|
||||||
Stop() error
|
Stop() error
|
||||||
|
@ -1,120 +0,0 @@
|
|||||||
// Package log provides debug logging
|
|
||||||
package log
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"os"
|
|
||||||
)
|
|
||||||
|
|
||||||
func log(v ...interface{}) {
|
|
||||||
if len(prefix) > 0 {
|
|
||||||
DefaultLog.Write(Record{Value: fmt.Sprint(append([]interface{}{prefix, " "}, v...)...)})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
DefaultLog.Write(Record{Value: fmt.Sprint(v...)})
|
|
||||||
}
|
|
||||||
|
|
||||||
func logf(format string, v ...interface{}) {
|
|
||||||
if len(prefix) > 0 {
|
|
||||||
format = prefix + " " + format
|
|
||||||
}
|
|
||||||
DefaultLog.Write(Record{Value: fmt.Sprintf(format, v...)})
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithLevel logs with the level specified
|
|
||||||
func WithLevel(l Level, v ...interface{}) {
|
|
||||||
if l > DefaultLevel {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
log(v...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithLevel logs with the level specified
|
|
||||||
func WithLevelf(l Level, format string, v ...interface{}) {
|
|
||||||
if l > DefaultLevel {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
logf(format, v...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Trace provides trace level logging
|
|
||||||
func Trace(v ...interface{}) {
|
|
||||||
WithLevel(LevelTrace, v...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Tracef provides trace level logging
|
|
||||||
func Tracef(format string, v ...interface{}) {
|
|
||||||
WithLevelf(LevelTrace, format, v...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Debug provides debug level logging
|
|
||||||
func Debug(v ...interface{}) {
|
|
||||||
WithLevel(LevelDebug, v...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Debugf provides debug level logging
|
|
||||||
func Debugf(format string, v ...interface{}) {
|
|
||||||
WithLevelf(LevelDebug, format, v...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Warn provides warn level logging
|
|
||||||
func Warn(v ...interface{}) {
|
|
||||||
WithLevel(LevelWarn, v...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Warnf provides warn level logging
|
|
||||||
func Warnf(format string, v ...interface{}) {
|
|
||||||
WithLevelf(LevelWarn, format, v...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Info provides info level logging
|
|
||||||
func Info(v ...interface{}) {
|
|
||||||
WithLevel(LevelInfo, v...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Infof provides info level logging
|
|
||||||
func Infof(format string, v ...interface{}) {
|
|
||||||
WithLevelf(LevelInfo, format, v...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Error provides warn level logging
|
|
||||||
func Error(v ...interface{}) {
|
|
||||||
WithLevel(LevelError, v...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Errorf provides warn level logging
|
|
||||||
func Errorf(format string, v ...interface{}) {
|
|
||||||
WithLevelf(LevelError, format, v...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Fatal logs with Log and then exits with os.Exit(1)
|
|
||||||
func Fatal(v ...interface{}) {
|
|
||||||
WithLevel(LevelFatal, v...)
|
|
||||||
os.Exit(1)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Fatalf logs with Logf and then exits with os.Exit(1)
|
|
||||||
func Fatalf(format string, v ...interface{}) {
|
|
||||||
WithLevelf(LevelFatal, format, v...)
|
|
||||||
os.Exit(1)
|
|
||||||
}
|
|
||||||
|
|
||||||
// SetLevel sets the log level
|
|
||||||
func SetLevel(l Level) {
|
|
||||||
DefaultLevel = l
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetLevel returns the current level
|
|
||||||
func GetLevel() Level {
|
|
||||||
return DefaultLevel
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set a prefix for the logger
|
|
||||||
func SetPrefix(p string) {
|
|
||||||
prefix = p
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set service name
|
|
||||||
func SetName(name string) {
|
|
||||||
prefix = fmt.Sprintf("[%s]", name)
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user