Enable debug globally if enabled in any server config (#4007)

* Enable debug globally if enabled in any server config

It was currently enabled only if the plugin debug
was enabled in the last server config of the Corefile.

Signed-off-by: Olivier Lemasle <o.lemasle@gmail.com>

* Add test and update debug's README

Signed-off-by: Olivier Lemasle <o.lemasle@gmail.com>
This commit is contained in:
Olivier Lemasle 2020-08-24 09:12:00 +02:00 committed by GitHub
parent f6262eb2f6
commit f36715e889
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 36 additions and 4 deletions

View file

@ -66,10 +66,6 @@ func NewServer(addr string, group []*Config) (*Server, error) {
if site.Debug {
s.debug = true
log.D.Set()
} else {
// When reloading we need to explicitly disable debug logging if it is now disabled.
s.debug = false
log.D.Clear()
}
// set the config per zone
s.zones[site.Zone] = site
@ -97,6 +93,11 @@ func NewServer(addr string, group []*Config) (*Server, error) {
site.pluginChain = stack
}
if !s.debug {
// When reloading we need to explicitly disable debug logging if it is now disabled.
log.D.Clear()
}
return s, nil
}

View file

@ -5,6 +5,7 @@ import (
"testing"
"github.com/coredns/coredns/plugin"
"github.com/coredns/coredns/plugin/pkg/log"
"github.com/coredns/coredns/plugin/test"
"github.com/miekg/dns"
@ -48,6 +49,33 @@ func TestNewServer(t *testing.T) {
}
}
func TestDebug(t *testing.T) {
configNoDebug, configDebug := testConfig("dns", testPlugin{}), testConfig("dns", testPlugin{})
configDebug.Debug = true
s1, err := NewServer("127.0.0.1:53", []*Config{configDebug, configNoDebug})
if err != nil {
t.Errorf("Expected no error for NewServer, got %s", err)
}
if !s1.debug {
t.Errorf("Expected debug mode enabled for server s1")
}
if !log.D.Value() {
t.Errorf("Expected debug logging enabled")
}
s2, err := NewServer("127.0.0.1:53", []*Config{configNoDebug})
if err != nil {
t.Errorf("Expected no error for NewServer, got %s", err)
}
if s2.debug {
t.Errorf("Expected debug mode disabled for server s2")
}
if log.D.Value() {
t.Errorf("Expected debug logging disabled")
}
}
func BenchmarkCoreServeDNS(b *testing.B) {
s, err := NewServer("127.0.0.1:53", []*Config{testConfig("dns", testPlugin{})})
if err != nil {

View file

@ -12,6 +12,9 @@ will be printed to standard output.
Note that the *errors* plugin (if loaded) will also set a `recover`, negating this setting.
Enabling this plugin is process-wide: enabling *debug* in at least one server block enables
debug mode globally.
## Syntax
~~~ txt