297 lines
8.7 KiB
Go
297 lines
8.7 KiB
Go
|
// Copyright (C) 2014 Space Monkey, Inc.
|
||
|
//
|
||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||
|
// you may not use this file except in compliance with the License.
|
||
|
// You may obtain a copy of the License at
|
||
|
//
|
||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||
|
//
|
||
|
// Unless required by applicable law or agreed to in writing, software
|
||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
|
// See the License for the specific language governing permissions and
|
||
|
// limitations under the License.
|
||
|
|
||
|
package spacelog
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"io"
|
||
|
)
|
||
|
|
||
|
// Trace logs a collection of values if the logger's level is trace or even
|
||
|
// more permissive.
|
||
|
func (l *Logger) Trace(v ...interface{}) {
|
||
|
if l.getLevel() <= Trace {
|
||
|
l.getHandler().Log(l.name, Trace, fmt.Sprint(v...), 1)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Tracef logs a format string with values if the logger's level is trace or
|
||
|
// even more permissive.
|
||
|
func (l *Logger) Tracef(format string, v ...interface{}) {
|
||
|
if l.getLevel() <= Trace {
|
||
|
l.getHandler().Log(l.name, Trace, fmt.Sprintf(format, v...), 1)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Tracee logs an error value if the error is not nil and the logger's level
|
||
|
// is trace or even more permissive.
|
||
|
func (l *Logger) Tracee(err error) {
|
||
|
if l.getLevel() <= Trace && err != nil {
|
||
|
l.getHandler().Log(l.name, Trace, err.Error(), 1)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// TraceEnabled returns true if the logger's level is trace or even more
|
||
|
// permissive.
|
||
|
func (l *Logger) TraceEnabled() bool {
|
||
|
return l.getLevel() <= Trace
|
||
|
}
|
||
|
|
||
|
// Debug logs a collection of values if the logger's level is debug or even
|
||
|
// more permissive.
|
||
|
func (l *Logger) Debug(v ...interface{}) {
|
||
|
if l.getLevel() <= Debug {
|
||
|
l.getHandler().Log(l.name, Debug, fmt.Sprint(v...), 1)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Debugf logs a format string with values if the logger's level is debug or
|
||
|
// even more permissive.
|
||
|
func (l *Logger) Debugf(format string, v ...interface{}) {
|
||
|
if l.getLevel() <= Debug {
|
||
|
l.getHandler().Log(l.name, Debug, fmt.Sprintf(format, v...), 1)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Debuge logs an error value if the error is not nil and the logger's level
|
||
|
// is debug or even more permissive.
|
||
|
func (l *Logger) Debuge(err error) {
|
||
|
if l.getLevel() <= Debug && err != nil {
|
||
|
l.getHandler().Log(l.name, Debug, err.Error(), 1)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// DebugEnabled returns true if the logger's level is debug or even more
|
||
|
// permissive.
|
||
|
func (l *Logger) DebugEnabled() bool {
|
||
|
return l.getLevel() <= Debug
|
||
|
}
|
||
|
|
||
|
// Info logs a collection of values if the logger's level is info or even
|
||
|
// more permissive.
|
||
|
func (l *Logger) Info(v ...interface{}) {
|
||
|
if l.getLevel() <= Info {
|
||
|
l.getHandler().Log(l.name, Info, fmt.Sprint(v...), 1)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Infof logs a format string with values if the logger's level is info or
|
||
|
// even more permissive.
|
||
|
func (l *Logger) Infof(format string, v ...interface{}) {
|
||
|
if l.getLevel() <= Info {
|
||
|
l.getHandler().Log(l.name, Info, fmt.Sprintf(format, v...), 1)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Infoe logs an error value if the error is not nil and the logger's level
|
||
|
// is info or even more permissive.
|
||
|
func (l *Logger) Infoe(err error) {
|
||
|
if l.getLevel() <= Info && err != nil {
|
||
|
l.getHandler().Log(l.name, Info, err.Error(), 1)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// InfoEnabled returns true if the logger's level is info or even more
|
||
|
// permissive.
|
||
|
func (l *Logger) InfoEnabled() bool {
|
||
|
return l.getLevel() <= Info
|
||
|
}
|
||
|
|
||
|
// Notice logs a collection of values if the logger's level is notice or even
|
||
|
// more permissive.
|
||
|
func (l *Logger) Notice(v ...interface{}) {
|
||
|
if l.getLevel() <= Notice {
|
||
|
l.getHandler().Log(l.name, Notice, fmt.Sprint(v...), 1)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Noticef logs a format string with values if the logger's level is notice or
|
||
|
// even more permissive.
|
||
|
func (l *Logger) Noticef(format string, v ...interface{}) {
|
||
|
if l.getLevel() <= Notice {
|
||
|
l.getHandler().Log(l.name, Notice, fmt.Sprintf(format, v...), 1)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Noticee logs an error value if the error is not nil and the logger's level
|
||
|
// is notice or even more permissive.
|
||
|
func (l *Logger) Noticee(err error) {
|
||
|
if l.getLevel() <= Notice && err != nil {
|
||
|
l.getHandler().Log(l.name, Notice, err.Error(), 1)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// NoticeEnabled returns true if the logger's level is notice or even more
|
||
|
// permissive.
|
||
|
func (l *Logger) NoticeEnabled() bool {
|
||
|
return l.getLevel() <= Notice
|
||
|
}
|
||
|
|
||
|
// Warn logs a collection of values if the logger's level is warning or even
|
||
|
// more permissive.
|
||
|
func (l *Logger) Warn(v ...interface{}) {
|
||
|
if l.getLevel() <= Warning {
|
||
|
l.getHandler().Log(l.name, Warning, fmt.Sprint(v...), 1)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Warnf logs a format string with values if the logger's level is warning or
|
||
|
// even more permissive.
|
||
|
func (l *Logger) Warnf(format string, v ...interface{}) {
|
||
|
if l.getLevel() <= Warning {
|
||
|
l.getHandler().Log(l.name, Warning, fmt.Sprintf(format, v...), 1)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Warne logs an error value if the error is not nil and the logger's level
|
||
|
// is warning or even more permissive.
|
||
|
func (l *Logger) Warne(err error) {
|
||
|
if l.getLevel() <= Warning && err != nil {
|
||
|
l.getHandler().Log(l.name, Warning, err.Error(), 1)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// WarnEnabled returns true if the logger's level is warning or even more
|
||
|
// permissive.
|
||
|
func (l *Logger) WarnEnabled() bool {
|
||
|
return l.getLevel() <= Warning
|
||
|
}
|
||
|
|
||
|
// Error logs a collection of values if the logger's level is error or even
|
||
|
// more permissive.
|
||
|
func (l *Logger) Error(v ...interface{}) {
|
||
|
if l.getLevel() <= Error {
|
||
|
l.getHandler().Log(l.name, Error, fmt.Sprint(v...), 1)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Errorf logs a format string with values if the logger's level is error or
|
||
|
// even more permissive.
|
||
|
func (l *Logger) Errorf(format string, v ...interface{}) {
|
||
|
if l.getLevel() <= Error {
|
||
|
l.getHandler().Log(l.name, Error, fmt.Sprintf(format, v...), 1)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Errore logs an error value if the error is not nil and the logger's level
|
||
|
// is error or even more permissive.
|
||
|
func (l *Logger) Errore(err error) {
|
||
|
if l.getLevel() <= Error && err != nil {
|
||
|
l.getHandler().Log(l.name, Error, err.Error(), 1)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// ErrorEnabled returns true if the logger's level is error or even more
|
||
|
// permissive.
|
||
|
func (l *Logger) ErrorEnabled() bool {
|
||
|
return l.getLevel() <= Error
|
||
|
}
|
||
|
|
||
|
// Crit logs a collection of values if the logger's level is critical or even
|
||
|
// more permissive.
|
||
|
func (l *Logger) Crit(v ...interface{}) {
|
||
|
if l.getLevel() <= Critical {
|
||
|
l.getHandler().Log(l.name, Critical, fmt.Sprint(v...), 1)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Critf logs a format string with values if the logger's level is critical or
|
||
|
// even more permissive.
|
||
|
func (l *Logger) Critf(format string, v ...interface{}) {
|
||
|
if l.getLevel() <= Critical {
|
||
|
l.getHandler().Log(l.name, Critical, fmt.Sprintf(format, v...), 1)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Crite logs an error value if the error is not nil and the logger's level
|
||
|
// is critical or even more permissive.
|
||
|
func (l *Logger) Crite(err error) {
|
||
|
if l.getLevel() <= Critical && err != nil {
|
||
|
l.getHandler().Log(l.name, Critical, err.Error(), 1)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// CritEnabled returns true if the logger's level is critical or even more
|
||
|
// permissive.
|
||
|
func (l *Logger) CritEnabled() bool {
|
||
|
return l.getLevel() <= Critical
|
||
|
}
|
||
|
|
||
|
// Log logs a collection of values if the logger's level is the provided level
|
||
|
// or even more permissive.
|
||
|
func (l *Logger) Log(level LogLevel, v ...interface{}) {
|
||
|
if l.getLevel() <= level {
|
||
|
l.getHandler().Log(l.name, level, fmt.Sprint(v...), 1)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Logf logs a format string with values if the logger's level is the provided
|
||
|
// level or even more permissive.
|
||
|
func (l *Logger) Logf(level LogLevel, format string, v ...interface{}) {
|
||
|
if l.getLevel() <= level {
|
||
|
l.getHandler().Log(l.name, level, fmt.Sprintf(format, v...), 1)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Loge logs an error value if the error is not nil and the logger's level
|
||
|
// is the provided level or even more permissive.
|
||
|
func (l *Logger) Loge(level LogLevel, err error) {
|
||
|
if l.getLevel() <= level && err != nil {
|
||
|
l.getHandler().Log(l.name, level, err.Error(), 1)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// LevelEnabled returns true if the logger's level is the provided level or
|
||
|
// even more permissive.
|
||
|
func (l *Logger) LevelEnabled(level LogLevel) bool {
|
||
|
return l.getLevel() <= level
|
||
|
}
|
||
|
|
||
|
type writer struct {
|
||
|
l *Logger
|
||
|
level LogLevel
|
||
|
}
|
||
|
|
||
|
func (w *writer) Write(data []byte) (int, error) {
|
||
|
if w.l.getLevel() <= w.level {
|
||
|
w.l.getHandler().Log(w.l.name, w.level, string(data), 1)
|
||
|
}
|
||
|
return len(data), nil
|
||
|
}
|
||
|
|
||
|
// Writer returns an io.Writer that writes messages at the given log level.
|
||
|
func (l *Logger) Writer(level LogLevel) io.Writer {
|
||
|
return &writer{l: l, level: level}
|
||
|
}
|
||
|
|
||
|
type writerNoCaller struct {
|
||
|
l *Logger
|
||
|
level LogLevel
|
||
|
}
|
||
|
|
||
|
func (w *writerNoCaller) Write(data []byte) (int, error) {
|
||
|
if w.l.getLevel() <= w.level {
|
||
|
w.l.getHandler().Log(w.l.name, w.level, string(data), -1)
|
||
|
}
|
||
|
return len(data), nil
|
||
|
}
|
||
|
|
||
|
// WriterWithoutCaller returns an io.Writer that writes messages at the given
|
||
|
// log level, but does not attempt to collect the Write caller, and provides
|
||
|
// no caller information to the log event.
|
||
|
func (l *Logger) WriterWithoutCaller(level LogLevel) io.Writer {
|
||
|
return &writerNoCaller{l: l, level: level}
|
||
|
}
|