mirror of
https://github.com/coredns/coredns.git
synced 2026-10-09 20:15:22 -04:00
Add opt-in JSON logging with structured DNS query fields (#8553)
* plugin/pkg/log: add opt-in JSON logging backend Signed-off-by: houyuwushang <liuluoqianqiu@outlook.com> * plugin/log: emit typed query records in JSON mode Signed-off-by: houyuwushang <liuluoqianqiu@outlook.com> * coremain: expose process-wide JSON logging Signed-off-by: houyuwushang <liuluoqianqiu@outlook.com> --------- Signed-off-by: houyuwushang <liuluoqianqiu@outlook.com>
This commit is contained in:
@@ -8,17 +8,26 @@ import (
|
||||
// P is a logger that includes the plugin doing the logging.
|
||||
type P struct {
|
||||
plugin string
|
||||
name string
|
||||
}
|
||||
|
||||
// NewWithPlugin returns a logger that includes "plugin/name: " in the log message.
|
||||
// I.e [INFO] plugin/<name>: message.
|
||||
func NewWithPlugin(name string) P { return P{"plugin/" + name + ": "} }
|
||||
func NewWithPlugin(name string) P { return P{plugin: "plugin/" + name + ": ", name: name} }
|
||||
|
||||
func (p P) logf(level, format string, v ...any) {
|
||||
if b := jsonBackend.Load(); b != nil {
|
||||
b.log(level, p.name, fmt.Sprintf(format, v...))
|
||||
return
|
||||
}
|
||||
log(level, p.plugin, fmt.Sprintf(format, v...))
|
||||
}
|
||||
|
||||
func (p P) log(level string, v ...any) {
|
||||
if b := jsonBackend.Load(); b != nil {
|
||||
b.log(level, p.name, fmt.Sprint(v...))
|
||||
return
|
||||
}
|
||||
log(level+p.plugin, v...)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user