68 lines
2.5 KiB
Go
68 lines
2.5 KiB
Go
// Copyright 2019 The Gitea Authors. All rights reserved.
|
|
// Use of this source code is governed by a MIT-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package log
|
|
|
|
import "strings"
|
|
|
|
// These flags define which text to prefix to each log entry generated
|
|
// by the Logger. Bits are or'ed together to control what's printed.
|
|
// There is no control over the order they appear (the order listed
|
|
// here) or the format they present (as described in the comments).
|
|
// The prefix is followed by a colon only if more than time is stated
|
|
// is specified. For example, flags Ldate | Ltime
|
|
// produce, 2009/01/23 01:23:23 message.
|
|
// The standard is:
|
|
// 2009/01/23 01:23:23 ...a/logger/c/d.go:23:runtime.Caller() [I]: message
|
|
const (
|
|
Ldate = 1 << iota // the date in the local time zone: 2009/01/23
|
|
Ltime // the time in the local time zone: 01:23:23
|
|
Lmicroseconds // microsecond resolution: 01:23:23.123123. assumes Ltime.
|
|
Llongfile // full file name and line number: /a/logger/c/d.go:23
|
|
Lshortfile // final file name element and line number: d.go:23. overrides Llongfile
|
|
Lfuncname // function name of the caller: runtime.Caller()
|
|
Lshortfuncname // last part of the function name
|
|
LUTC // if Ldate or Ltime is set, use UTC rather than the local time zone
|
|
Llevelinitial // Initial character of the provided level in brackets eg. [I] for info
|
|
Llevel // Provided level in brackets [INFO]
|
|
|
|
// Last 20 characters of the filename
|
|
Lmedfile = Lshortfile | Llongfile
|
|
|
|
// LstdFlags is the initial value for the standard logger
|
|
LstdFlags = Ldate | Ltime | Lmedfile | Lshortfuncname | Llevelinitial
|
|
)
|
|
|
|
var flagFromString = map[string]int{
|
|
"none": 0,
|
|
"date": Ldate,
|
|
"time": Ltime,
|
|
"microseconds": Lmicroseconds,
|
|
"longfile": Llongfile,
|
|
"shortfile": Lshortfile,
|
|
"funcname": Lfuncname,
|
|
"shortfuncname": Lshortfuncname,
|
|
"utc": LUTC,
|
|
"levelinitial": Llevelinitial,
|
|
"level": Llevel,
|
|
"medfile": Lmedfile,
|
|
"stdflags": LstdFlags,
|
|
}
|
|
|
|
// FlagsFromString takes a comma separated list of flags and returns
|
|
// the flags for this string
|
|
func FlagsFromString(from string) int {
|
|
flags := 0
|
|
for _, flag := range strings.Split(strings.ToLower(from), ",") {
|
|
f, ok := flagFromString[strings.TrimSpace(flag)]
|
|
if ok {
|
|
flags |= f
|
|
}
|
|
}
|
|
if flags == 0 {
|
|
return -1
|
|
}
|
|
return flags
|
|
}
|