Reform logging in weaveDNS
* Put prefixes (including msg IDs) in front of log messages to distinguish them * Failed lookups get logged under Info as per issue #311 * More accurate messages as per issue #311
This commit is contained in:
1 parent
f70dfe9de8
commit
b114735a41
7 files changed
+34
-28
No files matched your search
+5
-5
@@ -24,7 +24,7 @@ func parseUrl(url string) (identifier string, ipaddr string, err error) {
|
||||
func httpErrorAndLog(level *log.Logger, w http.ResponseWriter, msg string,
|
||||
status int, logmsg string, logargs ...interface{}) {
|
||||
http.Error(w, msg, status)
|
||||
level.Printf(logmsg, logargs...)
|
||||
level.Printf("[http] "+logmsg, logargs...)
|
||||
}
|
||||
|
||||
func ListenHttp(domain string, db Zone, port int) {
|
||||
@@ -60,7 +60,7 @@ func ListenHttp(domain string, db Zone, port int) {
|
||||
}
|
||||
|
||||
if dns.IsSubDomain(domain, name) {
|
||||
Info.Printf("Adding %s -> %s", name, ipStr)
|
||||
Info.Printf("[http] Adding %s -> %s", name, ipStr)
|
||||
if err = db.AddRecord(ident, name, ip); err != nil {
|
||||
if _, ok := err.(DuplicateError); !ok {
|
||||
httpErrorAndLog(
|
||||
@@ -70,7 +70,7 @@ func ListenHttp(domain string, db Zone, port int) {
|
||||
} // oh, I already know this. whatever.
|
||||
}
|
||||
} else {
|
||||
Info.Printf("Ignoring name %s, not in %s", name, domain)
|
||||
Info.Printf("[http] Ignoring name %s, not in %s", name, domain)
|
||||
}
|
||||
|
||||
case "DELETE":
|
||||
@@ -85,7 +85,7 @@ func ListenHttp(domain string, db Zone, port int) {
|
||||
reqError("Invalid IP in request", "Invalid IP in request: %s", ipStr)
|
||||
return
|
||||
}
|
||||
Info.Printf("Deleting %s (%s)", ident, ipStr)
|
||||
Info.Printf("[http] Deleting %s (%s)", ident, ipStr)
|
||||
if err = db.DeleteRecord(ident, ip); err != nil {
|
||||
if _, ok := err.(LookupError); !ok {
|
||||
httpErrorAndLog(
|
||||
@@ -103,6 +103,6 @@ func ListenHttp(domain string, db Zone, port int) {
|
||||
|
||||
address := fmt.Sprintf(":%d", port)
|
||||
if err := http.ListenAndServe(address, nil); err != nil {
|
||||
Error.Fatal("Unable to create http listener: ", err)
|
||||
Error.Fatal("[http] Unable to create http listener: ", err)
|
||||
}
|
||||
}
|
||||
@@ -10,10 +10,13 @@ func mdnsLookup(client *MDNSClient, name string, qtype uint16) (*Response, error
|
||||
channel := make(chan *Response)
|
||||
client.SendQuery(name, qtype, channel)
|
||||
for resp := range channel {
|
||||
Debug.Printf("Got response name %s addr %s", resp.Name, resp.Addr)
|
||||
if err := resp.Err; err != nil {
|
||||
Debug.Printf("[mdns] Error for query type %s name %d: %s",
|
||||
dns.TypeToString[qtype], name, err)
|
||||
return nil, err
|
||||
} else {
|
||||
Debug.Printf("[mdns] Got response name for query type %s name %s: name %s, addr %s",
|
||||
dns.TypeToString[qtype], name, resp.Name, resp.Addr)
|
||||
return resp, nil
|
||||
}
|
||||
}
|
||||
|
||||
@@ -91,12 +91,15 @@ func (s *MDNSServer) makeHandler(qtype uint16, lookup LookupFunc) dns.HandlerFun
|
||||
q := &r.Question[0]
|
||||
if q.Qtype == qtype {
|
||||
if m := lookup(s.zone, r, q); m != nil {
|
||||
Debug.Printf("Found local answer to mDNS query %s", q.Name)
|
||||
Debug.Printf("[mdns msgid %d] Found local answer to mDNS query %s",
|
||||
r.MsgHdr.Id, q.Name)
|
||||
if err := s.sendResponse(m); err != nil {
|
||||
Warning.Printf("Error writing to %s", s.sendconn)
|
||||
Warning.Printf("[mdns msgid %d] Error writing to %s",
|
||||
r.MsgHdr.Id, s.sendconn)
|
||||
}
|
||||
} else {
|
||||
Debug.Printf("No local answer for mDNS query %s", q.Name)
|
||||
Debug.Printf("[mdns msgid %d] No local answer for mDNS query %s",
|
||||
r.MsgHdr.Id, q.Name)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ func sendQuery(name string, querytype uint16) error {
|
||||
|
||||
func TestServerSimpleQuery(t *testing.T) {
|
||||
// The ff can be handy for debugging (obvs)
|
||||
//wt.InitDefaultLogging(true)
|
||||
wt.InitDefaultLogging(true)
|
||||
|
||||
log.Println("TestServerSimpleQuery starting")
|
||||
var zone = new(ZoneDb)
|
||||
|
||||
+12
-13
@@ -43,13 +43,10 @@ func queryHandler(lookups []Lookup) dns.HandlerFunc {
|
||||
return
|
||||
}
|
||||
}
|
||||
Debug.Printf("Query failed for %s", q.Name)
|
||||
w.WriteMsg(makeDNSFailResponse(r))
|
||||
} else {
|
||||
Warning.Printf("Query not handled: %+v", q)
|
||||
w.WriteMsg(makeDNSFailResponse(r))
|
||||
}
|
||||
return
|
||||
Info.Printf("[dns msgid %d] No results for type %s query %s",
|
||||
r.MsgHdr.Id, dns.TypeToString[q.Qtype], q.Name)
|
||||
w.WriteMsg(makeDNSFailResponse(r))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,12 +62,13 @@ func rdnsHandler(lookups []Lookup) dns.HandlerFunc {
|
||||
return
|
||||
}
|
||||
}
|
||||
Debug.Printf("Reverse query failed for %s", q.Name)
|
||||
w.WriteMsg(makeDNSFailResponse(r))
|
||||
Info.Printf("[dns msgid %d] No results for type %s query %s",
|
||||
r.MsgHdr.Id, dns.TypeToString[q.Qtype], q.Name)
|
||||
} else {
|
||||
Warning.Printf("Reverse query not handled: %+v", q)
|
||||
w.WriteMsg(makeDNSFailResponse(r))
|
||||
Warning.Printf("[dns msgid %d] Unexpected reverse query type %s: %+v",
|
||||
r.MsgHdr.Id, dns.TypeToString[q.Qtype], q)
|
||||
}
|
||||
w.WriteMsg(makeDNSFailResponse(r))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,17 +79,18 @@ func rdnsHandler(lookups []Lookup) dns.HandlerFunc {
|
||||
func notUsHandler() dns.HandlerFunc {
|
||||
return func(w dns.ResponseWriter, r *dns.Msg) {
|
||||
q := r.Question[0]
|
||||
Debug.Printf("Non-local query: %+v", q)
|
||||
Debug.Printf("[dns msgid %d] Non-local query: %+v", r.MsgHdr.Id, q)
|
||||
var responseMsg *dns.Msg
|
||||
if q.Qtype == dns.TypeA || q.Qtype == dns.TypeAAAA {
|
||||
if addrs, err := net.LookupIP(q.Name); err == nil {
|
||||
responseMsg = makeAddressReply(r, &q, addrs)
|
||||
} else {
|
||||
responseMsg = makeDNSFailResponse(r)
|
||||
Debug.Print("Failed fallback lookup ", err)
|
||||
Debug.Printf("[dns msgid %d] Failed fallback: %s", r.MsgHdr.Id, err)
|
||||
}
|
||||
} else {
|
||||
Warning.Printf("Non-local query not handled: %+v", q)
|
||||
Warning.Printf("[dns msgid %d] Non-local query not handled: %+v",
|
||||
r.MsgHdr.Id, q)
|
||||
responseMsg = makeDNSFailResponse(r)
|
||||
}
|
||||
w.WriteMsg(responseMsg)
|
||||
|
||||
@@ -7,7 +7,8 @@ import (
|
||||
|
||||
func checkError(err error, apiPath string) {
|
||||
if err != nil {
|
||||
Error.Fatalf("Unable to connect to Docker API on %s: %s", apiPath, err)
|
||||
Error.Fatalf("[updater] Unable to connect to Docker API on %s: %s",
|
||||
apiPath, err)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +23,7 @@ func StartUpdater(apiPath string, zone Zone) error {
|
||||
err = client.AddEventListener(events)
|
||||
checkError(err, apiPath)
|
||||
|
||||
Info.Printf("Using Docker API on %s: %v", apiPath, env)
|
||||
Info.Printf("[updater] Using Docker API on %s: %v", apiPath, env)
|
||||
|
||||
go func() {
|
||||
for event := range events {
|
||||
@@ -36,7 +37,7 @@ func handleEvent(zone Zone, event *docker.APIEvents, client *docker.Client) erro
|
||||
switch event.Status {
|
||||
case "die":
|
||||
id := event.ID
|
||||
Info.Printf("Container %s down. Removing records", id)
|
||||
Info.Printf("[updater] Container %s down. Removing records", id)
|
||||
zone.DeleteRecordsFor(id)
|
||||
}
|
||||
return nil
|
||||
|
||||
+2
-2
@@ -76,7 +76,7 @@ func (zone *ZoneDb) ReverseLookupLocal(inaddr string) (string, error) {
|
||||
if revIP := net.ParseIP(inaddr[:len(inaddr)-rdnsDomainLen]); revIP != nil {
|
||||
revIP4 := revIP.To4()
|
||||
ip := []byte{revIP4[3], revIP4[2], revIP4[1], revIP4[0]}
|
||||
Debug.Printf("Looking for address: %+v", ip)
|
||||
Debug.Printf("[zonedb] Looking for address: %+v", ip)
|
||||
zone.mx.RLock()
|
||||
defer zone.mx.RUnlock()
|
||||
for _, r := range zone.recs {
|
||||
@@ -86,7 +86,7 @@ func (zone *ZoneDb) ReverseLookupLocal(inaddr string) (string, error) {
|
||||
}
|
||||
return "", LookupError(inaddr)
|
||||
} else {
|
||||
Warning.Printf("Asked to reverse lookup %s", inaddr)
|
||||
Warning.Printf("[zonedb] Asked to reverse lookup %s", inaddr)
|
||||
return "", LookupError(inaddr)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user