Repository navigation
Expand file tree
/
Copy pathdefault.go
More file actions
63 lines (54 loc) · 2.37 KB
/
Copy pathdefault.go
File metadata and controls
63 lines (54 loc) · 2.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
package log
import (
"fmt"
"log/slog"
"os"
"strings"
)
// The package-level default logger: writes JSON to stderr, safe from any
// goroutine, created at package init so the hot path is a plain variable
// read. Call Close (or Flush) before the program exits so buffered records
// are written. For different output or levels, create your own Core
// instead.
//
// log.Info("서버 시작", log.Int("port", 8080))
// defer log.Close()
var (
defaultCore = New(os.Stderr, nil)
defaultLogger = defaultCore.Logger()
)
// Default returns the package-level logger (e.g. for registering Events).
func Default() *Logger { return defaultLogger }
func Debug(msg string, fields ...Field) { defaultLogger.Debug(msg, fields...) }
func Info(msg string, fields ...Field) { defaultLogger.Info(msg, fields...) }
func Warn(msg string, fields ...Field) { defaultLogger.Warn(msg, fields...) }
func Error(msg string, fields ...Field) { defaultLogger.Error(msg, fields...) }
func Log(level Level, msg string, fields ...Field) {
defaultLogger.Log(level, msg, fields...)
}
// Print, Printf and Println are stdlib-log-style conveniences: the message
// is fmt-formatted at the call site and logged at Info level. Prefer typed
// fields on hot paths.
func Print(v ...any) { defaultLogger.Info(fmt.Sprint(v...)) }
func Printf(format string, v ...any) { defaultLogger.Info(fmt.Sprintf(format, v...)) }
func Println(v ...any) {
defaultLogger.Info(strings.TrimSuffix(fmt.Sprintln(v...), "\n"))
}
// SlogHandler returns a slog.Handler backed by the package-level default
// Core. To route all slog (and, via slog's bridge, all stdlib "log")
// output through this logger:
//
// slog.SetDefault(slog.New(log.SlogHandler()))
func SlogHandler() slog.Handler { return defaultCore.SlogHandler() }
// SetTimeFormat sets the "time" layout of the default logger; empty means
// the default RFC3339-with-milliseconds. Call it once at start-up, before
// the first log — it is not synchronized. (Own Cores set this via
// Options.TimeFormat instead.)
//
// log.SetTimeFormat("2006-01-02 15:04:05")
func SetTimeFormat(layout string) { defaultCore.timeFormat = layout }
// Flush blocks until everything logged so far through the default logger
// has been written.
func Flush() error { return defaultCore.Flush() }
// Close flushes the default logger and stops its background writer.
func Close() error { return defaultCore.Close() }