forked from lug/matterbridge
Add dependencies/vendor (whatsapp)
This commit is contained in:
89
vendor/go.mau.fi/libsignal/logger/Logger.go
vendored
Normal file
89
vendor/go.mau.fi/libsignal/logger/Logger.go
vendored
Normal file
@@ -0,0 +1,89 @@
|
||||
// Package logger provides optional debug logging of the Signal library.
|
||||
package logger
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"runtime"
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// Logger is a shared loggable interface that this library will use for all log messages.
|
||||
var Logger Loggable
|
||||
|
||||
// Loggable is an interface for logging.
|
||||
type Loggable interface {
|
||||
Debug(caller, message string)
|
||||
Info(caller, message string)
|
||||
Warning(caller, message string)
|
||||
Error(caller, message string)
|
||||
Configure(settings string)
|
||||
}
|
||||
|
||||
// Setup will configure the shared logger to use the provided logger.
|
||||
func Setup(logger *Loggable) {
|
||||
Logger = *logger
|
||||
}
|
||||
|
||||
// ToString converts an arbitrary number of objects to a string for use in a logger.
|
||||
func toString(a ...interface{}) string {
|
||||
return fmt.Sprint(a...)
|
||||
}
|
||||
|
||||
// EnsureLogger will use the default logger if one was not set up.
|
||||
func ensureLogger() {
|
||||
if Logger == nil {
|
||||
// fmt.Println("Error: No logger was configured. Use `logger.Setup` to configure a logger.")
|
||||
Logger = &defaultLogger{}
|
||||
}
|
||||
}
|
||||
|
||||
// GetCaller gets the go file name and line number that the logger was called from.
|
||||
func getCaller() string {
|
||||
var file string
|
||||
_, path, line, _ := runtime.Caller(2)
|
||||
paths := strings.Split(path, "/")
|
||||
if len(paths) > 0 {
|
||||
file = paths[len(paths)-1]
|
||||
} else {
|
||||
file = "<unkn>"
|
||||
}
|
||||
|
||||
return file + ":" + strconv.Itoa(line)
|
||||
}
|
||||
|
||||
/*
|
||||
* Go methods used by the library for logging.
|
||||
*/
|
||||
|
||||
// Debug prints debug level logs.
|
||||
func Debug(msg ...interface{}) {
|
||||
ensureLogger()
|
||||
Logger.Debug(getCaller(), toString(msg...))
|
||||
}
|
||||
|
||||
// Info prints info level logs.
|
||||
func Info(msg ...interface{}) {
|
||||
ensureLogger()
|
||||
Logger.Info(getCaller(), toString(msg...))
|
||||
}
|
||||
|
||||
// Warning prints warning level logs.
|
||||
func Warning(msg ...interface{}) {
|
||||
ensureLogger()
|
||||
Logger.Warning(getCaller(), toString(msg...))
|
||||
}
|
||||
|
||||
// Error prints error level logs.
|
||||
func Error(msg ...interface{}) {
|
||||
ensureLogger()
|
||||
Logger.Error(getCaller(), toString(msg...))
|
||||
}
|
||||
|
||||
// Configure allows arbitrary logger configuration settings. The
|
||||
// default logger uses this method to configure what Go files
|
||||
// are allowed to log.
|
||||
func Configure(settings string) {
|
||||
ensureLogger()
|
||||
Logger.Configure(settings)
|
||||
}
|
||||
Reference in New Issue
Block a user