diff options
Diffstat (limited to 'middleware/log/log.go')
-rw-r--r-- | middleware/log/log.go | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/middleware/log/log.go b/middleware/log/log.go index 32d40632a..9da5e65aa 100644 --- a/middleware/log/log.go +++ b/middleware/log/log.go @@ -7,6 +7,11 @@ import ( "github.com/miekg/coredns/middleware" "github.com/miekg/coredns/middleware/metrics" + "github.com/miekg/coredns/middleware/pkg/dnsrecorder" + "github.com/miekg/coredns/middleware/pkg/rcode" + "github.com/miekg/coredns/middleware/pkg/replacer" + "github.com/miekg/coredns/middleware/pkg/roller" + "github.com/miekg/coredns/request" "github.com/miekg/dns" "golang.org/x/net/context" @@ -20,32 +25,30 @@ type Logger struct { } func (l Logger) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (int, error) { - state := middleware.State{W: w, Req: r} + state := request.Request{W: w, Req: r} for _, rule := range l.Rules { if middleware.Name(rule.NameScope).Matches(state.Name()) { - responseRecorder := middleware.NewResponseRecorder(w) - rcode, err := l.Next.ServeDNS(ctx, responseRecorder, r) + responseRecorder := dnsrecorder.New(w) + rc, err := l.Next.ServeDNS(ctx, responseRecorder, r) - if rcode > 0 { + if rc > 0 { // There was an error up the chain, but no response has been written yet. // The error must be handled here so the log entry will record the response size. if l.ErrorFunc != nil { - l.ErrorFunc(responseRecorder, r, rcode) + l.ErrorFunc(responseRecorder, r, rc) } else { - rc := middleware.RcodeToString(rcode) - answer := new(dns.Msg) - answer.SetRcode(r, rcode) + answer.SetRcode(r, rc) state.SizeAndDo(answer) - metrics.Report(state, metrics.Dropped, rc, answer.Len(), time.Now()) + metrics.Report(state, metrics.Dropped, rcode.ToString(rc), answer.Len(), time.Now()) w.WriteMsg(answer) } - rcode = 0 + rc = 0 } - rep := middleware.NewReplacer(r, responseRecorder, CommonLogEmptyValue) + rep := replacer.New(r, responseRecorder, CommonLogEmptyValue) rule.Log.Println(rep.Replace(rule.Format)) - return rcode, err + return rc, err } } @@ -58,7 +61,7 @@ type Rule struct { OutputFile string Format string Log *log.Logger - Roller *middleware.LogRoller + Roller *roller.LogRoller } const ( |