Fix all the log replacers

This commit is contained in:
Miek Gieben
2016-04-03 17:16:46 +01:00
parent dd537b163d
commit 7f36a853f7
3 changed files with 10 additions and 4 deletions

View File

@@ -47,7 +47,7 @@ The following place holders are supported:
* `{port}`: client's port. * `{port}`: client's port.
* `{rcode}`: response RCODE. * `{rcode}`: response RCODE.
* `{size}`: response size. * `{size}`: response size.
* `{duration}`: response duration (in seconds). * `{duration}`: response duration.
* `{>bufsize}`: the EDNS0 buffer size advertized by the client. * `{>bufsize}`: the EDNS0 buffer size advertized by the client.
* `{>do}`: is the EDNS0 DO (DNSSEC OK) bit set. * `{>do}`: is the EDNS0 DO (DNSSEC OK) bit set.
* `{>id}`: query ID * `{>id}`: query ID

View File

@@ -58,7 +58,7 @@ const (
// DefaultLogFilename is the default log filename. // DefaultLogFilename is the default log filename.
DefaultLogFilename = "query.log" DefaultLogFilename = "query.log"
// CommonLogFormat is the common log format. // CommonLogFormat is the common log format.
CommonLogFormat = `{remote} ` + CommonLogEmptyValue + ` [{when}] "{type} {name} {proto}" {rcode} {size}` CommonLogFormat = `{remote} ` + CommonLogEmptyValue + ` [{when}] "{type} {name} {proto} {>do} {>bufsize}" {rcode} {size} {duration}`
// CommonLogEmptyValue is the common empty log value. // CommonLogEmptyValue is the common empty log value.
CommonLogEmptyValue = "-" CommonLogEmptyValue = "-"
// CombinedLogFormat is the combined log format. // CombinedLogFormat is the combined log format.

View File

@@ -1,7 +1,6 @@
package middleware package middleware
import ( import (
"fmt"
"strconv" "strconv"
"strings" "strings"
"time" "time"
@@ -62,7 +61,7 @@ func NewReplacer(r *dns.Msg, rr *ResponseRecorder, emptyValue string) Replacer {
// TODO(miek): syntax for flags and document it // TODO(miek): syntax for flags and document it
rep.replacements[headerReplacer+"id}"] = strconv.Itoa(int(r.Id)) rep.replacements[headerReplacer+"id}"] = strconv.Itoa(int(r.Id))
rep.replacements[headerReplacer+"opcode}"] = strconv.Itoa(int(r.Opcode)) rep.replacements[headerReplacer+"opcode}"] = strconv.Itoa(int(r.Opcode))
rep.replacements[headerReplacer+"do}"] = fmt.Sprintf("%b", state.Do()) rep.replacements[headerReplacer+"do}"] = boolToString(state.Do())
rep.replacements[headerReplacer+"bufsize}"] = strconv.Itoa(state.Size()) rep.replacements[headerReplacer+"bufsize}"] = strconv.Itoa(state.Size())
return rep return rep
@@ -104,6 +103,13 @@ func (r replacer) Set(key, value string) {
r.replacements["{"+key+"}"] = value r.replacements["{"+key+"}"] = value
} }
func boolToString(b bool) string {
if b {
return "true"
}
return "false"
}
const ( const (
timeFormat = "02/Jan/2006:15:04:05 -0700" timeFormat = "02/Jan/2006:15:04:05 -0700"
headerReplacer = "{>" headerReplacer = "{>"