diff options
Diffstat (limited to 'vendor/gopkg.in/clog.v1/clog.go')
-rw-r--r-- | vendor/gopkg.in/clog.v1/clog.go | 148 |
1 files changed, 0 insertions, 148 deletions
diff --git a/vendor/gopkg.in/clog.v1/clog.go b/vendor/gopkg.in/clog.v1/clog.go deleted file mode 100644 index eb9325c1..00000000 --- a/vendor/gopkg.in/clog.v1/clog.go +++ /dev/null @@ -1,148 +0,0 @@ -// Copyright 2017 Unknwon -// -// 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. - -// Clog is a channel-based logging package for Go. -package clog - -import ( - "fmt" - "os" - "path/filepath" - "runtime" - "strings" -) - -const ( - _VERSION = "1.2.0" -) - -// Version returns current version of the package. -func Version() string { - return _VERSION -} - -type ( - MODE string - LEVEL int -) - -const ( - CONSOLE MODE = "console" - FILE MODE = "file" - SLACK MODE = "slack" - DISCORD MODE = "discord" -) - -const ( - TRACE LEVEL = iota - INFO - WARN - ERROR - FATAL -) - -var formats = map[LEVEL]string{ - TRACE: "[TRACE] ", - INFO: "[ INFO] ", - WARN: "[ WARN] ", - ERROR: "[ERROR] ", - FATAL: "[FATAL] ", -} - -// isValidLevel returns true if given level is in the valid range. -func isValidLevel(level LEVEL) bool { - return level >= TRACE && level <= FATAL -} - -// Message represents a log message to be processed. -type Message struct { - Level LEVEL - Body string -} - -func Write(level LEVEL, skip int, format string, v ...interface{}) { - msg := &Message{ - Level: level, - } - - // Only error and fatal information needs locate position for debugging. - // But if skip is 0 means caller doesn't care so we can skip. - if msg.Level >= ERROR && skip > 0 { - pc, file, line, ok := runtime.Caller(skip) - if ok { - // Get caller function name. - fn := runtime.FuncForPC(pc) - var fnName string - if fn == nil { - fnName = "?()" - } else { - fnName = strings.TrimLeft(filepath.Ext(fn.Name()), ".") + "()" - } - - if len(file) > 20 { - file = "..." + file[len(file)-20:] - } - msg.Body = formats[level] + fmt.Sprintf("[%s:%d %s] ", file, line, fnName) + fmt.Sprintf(format, v...) - } - } - if len(msg.Body) == 0 { - msg.Body = formats[level] + fmt.Sprintf(format, v...) - } - - for i := range receivers { - if receivers[i].Level() > level { - continue - } - - receivers[i].msgChan <- msg - } -} - -func Trace(format string, v ...interface{}) { - Write(TRACE, 0, format, v...) -} - -func Info(format string, v ...interface{}) { - Write(INFO, 0, format, v...) -} - -func Warn(format string, v ...interface{}) { - Write(WARN, 0, format, v...) -} - -func Error(skip int, format string, v ...interface{}) { - Write(ERROR, skip, format, v...) -} - -func Fatal(skip int, format string, v ...interface{}) { - Write(FATAL, skip, format, v...) - Shutdown() - os.Exit(1) -} - -func Shutdown() { - for i := range receivers { - receivers[i].Destroy() - } - - // Shutdown the error handling goroutine. - quitChan <- struct{}{} - for { - if len(errorChan) == 0 { - break - } - - fmt.Printf("clog: unable to write message: %v\n", <-errorChan) - } -} |