Платформа ЦРНП "Мирокод" для разработки проектов
https://git.mirocod.ru
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
2.5 KiB
67 lines
2.5 KiB
// 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 |
|
}
|
|
|