Move the crudhandler to own repo (#27)
This commit is contained in:
19
vendor/github.com/op/go-logging/CHANGELOG.md
generated
vendored
Normal file
19
vendor/github.com/op/go-logging/CHANGELOG.md
generated
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
# Changelog
|
||||
|
||||
## 2.0.0-rc1 (2016-02-11)
|
||||
|
||||
Time flies and it has been three years since this package was first released.
|
||||
There have been a couple of API changes I have wanted to do for some time but
|
||||
I've tried to maintain backwards compatibility. Some inconsistencies in the
|
||||
API have started to show, proper vendor support in Go out of the box and
|
||||
the fact that `go vet` will give warnings -- I have decided to bump the major
|
||||
version.
|
||||
|
||||
* Make eg. `Info` and `Infof` do different things. You want to change all calls
|
||||
to `Info` with a string format go to `Infof` etc. In many cases, `go vet` will
|
||||
guide you.
|
||||
* `Id` in `Record` is now called `ID`
|
||||
|
||||
## 1.0.0 (2013-02-21)
|
||||
|
||||
Initial release
|
6
vendor/github.com/op/go-logging/README.md
generated
vendored
6
vendor/github.com/op/go-logging/README.md
generated
vendored
@ -7,6 +7,10 @@ is customizable and supports different logging backends like syslog, file and
|
||||
memory. Multiple backends can be utilized with different log levels per backend
|
||||
and logger.
|
||||
|
||||
**_NOTE:_** backwards compatibility promise have been dropped for master. Please
|
||||
vendor this package or use `gopkg.in/op/go-logging.v1` for previous version. See
|
||||
[changelog](CHANGELOG.md) for details.
|
||||
|
||||
## Example
|
||||
|
||||
Let's have a look at an [example](examples/example.go) which demonstrates most
|
||||
@ -86,4 +90,4 @@ For docs, see http://godoc.org/github.com/op/go-logging or run:
|
||||
|
||||
## Additional resources
|
||||
|
||||
* [wslog](https://godoc.org/github.com/cryptix/go/logging/wslog) -- exposes log messages through a WebSocket.
|
||||
* [wslog](https://godoc.org/github.com/cryptix/exp/wslog) -- exposes log messages through a WebSocket.
|
||||
|
38
vendor/github.com/op/go-logging/format.go
generated
vendored
38
vendor/github.com/op/go-logging/format.go
generated
vendored
@ -14,6 +14,7 @@ import (
|
||||
"path/filepath"
|
||||
"regexp"
|
||||
"runtime"
|
||||
"strconv"
|
||||
"strings"
|
||||
"sync"
|
||||
"time"
|
||||
@ -81,7 +82,7 @@ var defaultVerbsLayout = []string{
|
||||
"s",
|
||||
"s",
|
||||
"s",
|
||||
"s",
|
||||
"0",
|
||||
"",
|
||||
}
|
||||
|
||||
@ -162,7 +163,7 @@ type stringFormatter struct {
|
||||
// %{message} Message (string)
|
||||
// %{longfile} Full file name and line number: /a/b/c/d.go:23
|
||||
// %{shortfile} Final file name element and line number: d.go:23
|
||||
// %{callpath} Callpath like main.a.b.c...c "..." meaning recursive call
|
||||
// %{callpath} Callpath like main.a.b.c...c "..." meaning recursive call ~. meaning truncated path
|
||||
// %{color} ANSI color based on log level
|
||||
//
|
||||
// For normal types, the output can be customized by using the 'verbs' defined
|
||||
@ -179,6 +180,9 @@ type stringFormatter struct {
|
||||
// "%{color:bold}%{time:15:04:05} %{level:-8s}%{color:reset} %{message}" will
|
||||
// just colorize the time and level, leaving the message uncolored.
|
||||
//
|
||||
// For the 'callpath' verb, the output can be adjusted to limit the printing
|
||||
// the stack depth. i.e. '%{callpath:3}' will print '~.a.b.c'
|
||||
//
|
||||
// Colors on Windows is unfortunately not supported right now and is currently
|
||||
// a no-op.
|
||||
//
|
||||
@ -216,12 +220,12 @@ func NewStringFormatter(format string) (Formatter, error) {
|
||||
}
|
||||
|
||||
// Handle layout customizations or use the default. If this is not for the
|
||||
// time or color formatting, we need to prefix with %.
|
||||
// time, color formatting or callpath, we need to prefix with %.
|
||||
layout := defaultVerbsLayout[verb]
|
||||
if m[4] != -1 {
|
||||
layout = format[m[4]:m[5]]
|
||||
}
|
||||
if verb != fmtVerbTime && verb != fmtVerbLevelColor {
|
||||
if verb != fmtVerbTime && verb != fmtVerbLevelColor && verb != fmtVerbCallpath {
|
||||
layout = "%" + layout
|
||||
}
|
||||
|
||||
@ -238,12 +242,13 @@ func NewStringFormatter(format string) (Formatter, error) {
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
testFmt := "hello %s"
|
||||
r := &Record{
|
||||
Id: 12345,
|
||||
ID: 12345,
|
||||
Time: t,
|
||||
Module: "logger",
|
||||
Args: []interface{}{"go"},
|
||||
fmt: "hello %s",
|
||||
fmt: &testFmt,
|
||||
}
|
||||
if err := fmter.Format(0, r, &bytes.Buffer{}); err != nil {
|
||||
return nil, err
|
||||
@ -274,6 +279,12 @@ func (f *stringFormatter) Format(calldepth int, r *Record, output io.Writer) err
|
||||
output.Write([]byte(r.Time.Format(part.layout)))
|
||||
} else if part.verb == fmtVerbLevelColor {
|
||||
doFmtVerbLevelColor(part.layout, r.Level, output)
|
||||
} else if part.verb == fmtVerbCallpath {
|
||||
depth, err := strconv.Atoi(part.layout)
|
||||
if err != nil {
|
||||
depth = 0
|
||||
}
|
||||
output.Write([]byte(formatCallpath(calldepth+1, depth)))
|
||||
} else {
|
||||
var v interface{}
|
||||
switch part.verb {
|
||||
@ -281,7 +292,7 @@ func (f *stringFormatter) Format(calldepth int, r *Record, output io.Writer) err
|
||||
v = r.Level
|
||||
break
|
||||
case fmtVerbID:
|
||||
v = r.Id
|
||||
v = r.ID
|
||||
break
|
||||
case fmtVerbPid:
|
||||
v = pid
|
||||
@ -313,8 +324,6 @@ func (f *stringFormatter) Format(calldepth int, r *Record, output io.Writer) err
|
||||
v = formatFuncName(part.verb, f.Name())
|
||||
}
|
||||
}
|
||||
case fmtVerbCallpath:
|
||||
v = formatCallpath(calldepth + 1)
|
||||
default:
|
||||
panic("unhandled format part")
|
||||
}
|
||||
@ -350,14 +359,19 @@ func formatFuncName(v fmtVerb, f string) string {
|
||||
panic("unexpected func formatter")
|
||||
}
|
||||
|
||||
func formatCallpath(calldepth int) string {
|
||||
func formatCallpath(calldepth int, depth int) string {
|
||||
v := ""
|
||||
callers := make([]uintptr, 64)
|
||||
n := runtime.Callers(calldepth+2, callers)
|
||||
oldPc := callers[n-1]
|
||||
|
||||
start := n - 3
|
||||
if depth > 0 && start >= depth {
|
||||
start = depth - 1
|
||||
v += "~."
|
||||
}
|
||||
recursiveCall := false
|
||||
for i := n - 3; i >= 0; i-- {
|
||||
for i := start; i >= 0; i-- {
|
||||
pc := callers[i]
|
||||
if oldPc == pc {
|
||||
recursiveCall = true
|
||||
@ -368,7 +382,7 @@ func formatCallpath(calldepth int) string {
|
||||
recursiveCall = false
|
||||
v += ".."
|
||||
}
|
||||
if i < n-3 {
|
||||
if i < start {
|
||||
v += "."
|
||||
}
|
||||
if f := runtime.FuncForPC(pc); f != nil {
|
||||
|
72
vendor/github.com/op/go-logging/logger.go
generated
vendored
72
vendor/github.com/op/go-logging/logger.go
generated
vendored
@ -41,7 +41,7 @@ var (
|
||||
// was created, an increasing id, filename and line and finally the actual
|
||||
// formatted log line.
|
||||
type Record struct {
|
||||
Id uint64
|
||||
ID uint64
|
||||
Time time.Time
|
||||
Module string
|
||||
Level Level
|
||||
@ -50,7 +50,7 @@ type Record struct {
|
||||
// message is kept as a pointer to have shallow copies update this once
|
||||
// needed.
|
||||
message *string
|
||||
fmt string
|
||||
fmt *string
|
||||
formatter Formatter
|
||||
formatted string
|
||||
}
|
||||
@ -74,7 +74,15 @@ func (r *Record) Message() string {
|
||||
r.Args[i] = redactor.Redacted()
|
||||
}
|
||||
}
|
||||
msg := fmt.Sprintf(r.fmt, r.Args...)
|
||||
var buf bytes.Buffer
|
||||
if r.fmt != nil {
|
||||
fmt.Fprintf(&buf, *r.fmt, r.Args...)
|
||||
} else {
|
||||
// use Fprintln to make sure we always get space between arguments
|
||||
fmt.Fprintln(&buf, r.Args...)
|
||||
buf.Truncate(buf.Len() - 1) // strip newline
|
||||
}
|
||||
msg := buf.String()
|
||||
r.message = &msg
|
||||
}
|
||||
return *r.message
|
||||
@ -132,14 +140,14 @@ func (l *Logger) IsEnabledFor(level Level) bool {
|
||||
return defaultBackend.IsEnabledFor(level, l.Module)
|
||||
}
|
||||
|
||||
func (l *Logger) log(lvl Level, format string, args ...interface{}) {
|
||||
func (l *Logger) log(lvl Level, format *string, args ...interface{}) {
|
||||
if !l.IsEnabledFor(lvl) {
|
||||
return
|
||||
}
|
||||
|
||||
// Create the logging record and pass it in to the backend
|
||||
record := &Record{
|
||||
Id: atomic.AddUint64(&sequenceNo, 1),
|
||||
ID: atomic.AddUint64(&sequenceNo, 1),
|
||||
Time: timeNow(),
|
||||
Module: l.Module,
|
||||
Level: lvl,
|
||||
@ -164,84 +172,86 @@ func (l *Logger) log(lvl Level, format string, args ...interface{}) {
|
||||
|
||||
// Fatal is equivalent to l.Critical(fmt.Sprint()) followed by a call to os.Exit(1).
|
||||
func (l *Logger) Fatal(args ...interface{}) {
|
||||
s := fmt.Sprint(args...)
|
||||
l.log(CRITICAL, "%s", s)
|
||||
l.log(CRITICAL, nil, args...)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
// Fatalf is equivalent to l.Critical followed by a call to os.Exit(1).
|
||||
func (l *Logger) Fatalf(format string, args ...interface{}) {
|
||||
l.log(CRITICAL, format, args...)
|
||||
l.log(CRITICAL, &format, args...)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
// Panic is equivalent to l.Critical(fmt.Sprint()) followed by a call to panic().
|
||||
func (l *Logger) Panic(args ...interface{}) {
|
||||
s := fmt.Sprint(args...)
|
||||
l.log(CRITICAL, "%s", s)
|
||||
panic(s)
|
||||
l.log(CRITICAL, nil, args...)
|
||||
panic(fmt.Sprint(args...))
|
||||
}
|
||||
|
||||
// Panicf is equivalent to l.Critical followed by a call to panic().
|
||||
func (l *Logger) Panicf(format string, args ...interface{}) {
|
||||
s := fmt.Sprintf(format, args...)
|
||||
l.log(CRITICAL, "%s", s)
|
||||
panic(s)
|
||||
l.log(CRITICAL, &format, args...)
|
||||
panic(fmt.Sprintf(format, args...))
|
||||
}
|
||||
|
||||
// Critical logs a message using CRITICAL as log level.
|
||||
func (l *Logger) Critical(format string, args ...interface{}) {
|
||||
l.log(CRITICAL, format, args...)
|
||||
func (l *Logger) Critical(args ...interface{}) {
|
||||
l.log(CRITICAL, nil, args...)
|
||||
}
|
||||
|
||||
// Criticalf logs a message using CRITICAL as log level.
|
||||
func (l *Logger) Criticalf(format string, args ...interface{}) {
|
||||
l.log(CRITICAL, &format, args...)
|
||||
}
|
||||
|
||||
// Error logs a message using ERROR as log level.
|
||||
func (l *Logger) Error(format string, args ...interface{}) {
|
||||
l.log(ERROR, format, args...)
|
||||
func (l *Logger) Error(args ...interface{}) {
|
||||
l.log(ERROR, nil, args...)
|
||||
}
|
||||
|
||||
// Errorf logs a message using ERROR as log level.
|
||||
func (l *Logger) Errorf(format string, args ...interface{}) {
|
||||
l.log(ERROR, format, args...)
|
||||
l.log(ERROR, &format, args...)
|
||||
}
|
||||
|
||||
// Warning logs a message using WARNING as log level.
|
||||
func (l *Logger) Warning(format string, args ...interface{}) {
|
||||
l.log(WARNING, format, args...)
|
||||
func (l *Logger) Warning(args ...interface{}) {
|
||||
l.log(WARNING, nil, args...)
|
||||
}
|
||||
|
||||
// Warningf logs a message using WARNING as log level.
|
||||
func (l *Logger) Warningf(format string, args ...interface{}) {
|
||||
l.log(WARNING, format, args...)
|
||||
l.log(WARNING, &format, args...)
|
||||
}
|
||||
|
||||
// Notice logs a message using NOTICE as log level.
|
||||
func (l *Logger) Notice(format string, args ...interface{}) {
|
||||
l.log(NOTICE, format, args...)
|
||||
func (l *Logger) Notice(args ...interface{}) {
|
||||
l.log(NOTICE, nil, args...)
|
||||
}
|
||||
|
||||
// Noticef logs a message using NOTICE as log level.
|
||||
func (l *Logger) Noticef(format string, args ...interface{}) {
|
||||
l.log(NOTICE, format, args...)
|
||||
l.log(NOTICE, &format, args...)
|
||||
}
|
||||
|
||||
// Info logs a message using INFO as log level.
|
||||
func (l *Logger) Info(format string, args ...interface{}) {
|
||||
l.log(INFO, format, args...)
|
||||
func (l *Logger) Info(args ...interface{}) {
|
||||
l.log(INFO, nil, args...)
|
||||
}
|
||||
|
||||
// Infof logs a message using INFO as log level.
|
||||
func (l *Logger) Infof(format string, args ...interface{}) {
|
||||
l.log(INFO, format, args...)
|
||||
l.log(INFO, &format, args...)
|
||||
}
|
||||
|
||||
// Debug logs a message using DEBUG as log level.
|
||||
func (l *Logger) Debug(format string, args ...interface{}) {
|
||||
l.log(DEBUG, format, args...)
|
||||
func (l *Logger) Debug(args ...interface{}) {
|
||||
l.log(DEBUG, nil, args...)
|
||||
}
|
||||
|
||||
// Debugf logs a message using DEBUG as log level.
|
||||
func (l *Logger) Debugf(format string, args ...interface{}) {
|
||||
l.log(DEBUG, format, args...)
|
||||
l.log(DEBUG, &format, args...)
|
||||
}
|
||||
|
||||
func init() {
|
||||
|
Reference in New Issue
Block a user