Merge pull request #306 from vieux/improve_logs1

improve some logs
This commit is contained in:
Andrea Luzzardi 2015-01-27 12:23:31 -08:00
commit ec7d343a88
12 changed files with 24 additions and 23 deletions

View File

@ -354,7 +354,7 @@ func writeCorsHeaders(w http.ResponseWriter, r *http.Request) {
} }
func httpError(w http.ResponseWriter, err string, status int) { func httpError(w http.ResponseWriter, err string, status int) {
log.Error(err) log.WithField("status", status).Errorf("HTTP error: %v", err)
http.Error(w, err, status) http.Error(w, err, status)
} }
@ -419,13 +419,13 @@ func createRouter(c *context, enableCors bool) *mux.Router {
for method, routes := range m { for method, routes := range m {
for route, fct := range routes { for route, fct := range routes {
log.Debugf("Registering %s, %s", method, route) log.WithFields(log.Fields{"method": method, "route": route}).Debug("Registering HTTP route")
// NOTE: scope issue, make sure the variables are local and won't be changed // NOTE: scope issue, make sure the variables are local and won't be changed
localRoute := route localRoute := route
localFct := fct localFct := fct
wrap := func(w http.ResponseWriter, r *http.Request) { wrap := func(w http.ResponseWriter, r *http.Request) {
log.Infof("%s %s", r.Method, r.RequestURI) log.WithFields(log.Fields{"method": r.Method, "uri": r.RequestURI}).Info("HTTP request received")
if enableCors { if enableCors {
writeCorsHeaders(w, r) writeCorsHeaders(w, r)
} }

View File

@ -48,7 +48,7 @@ func ListenAndServe(c *cluster.Cluster, s *scheduler.Scheduler, hosts []string,
} }
go func() { go func() {
log.Infof("Listening for HTTP on %s (%s)", protoAddrParts[0], protoAddrParts[1]) log.WithFields(log.Fields{"proto": protoAddrParts[0], "addr": protoAddrParts[1]}).Info("Listening for HTTP")
var ( var (
l net.Listener l net.Listener

View File

@ -59,7 +59,7 @@ func proxy(tlsConfig *tls.Config, addr string, w http.ResponseWriter, r *http.Re
r.URL.Scheme = scheme r.URL.Scheme = scheme
r.URL.Host = addr r.URL.Host = addr
log.Debugf("[PROXY] --> %s %s", r.Method, r.URL) log.WithFields(log.Fields{"method": r.Method, "url": r.URL}).Debug("Proxy request")
resp, err := client.Do(r) resp, err := client.Do(r)
if err != nil { if err != nil {
return err return err
@ -77,7 +77,7 @@ func hijack(tlsConfig *tls.Config, addr string, w http.ResponseWriter, r *http.R
addr = parts[1] addr = parts[1]
} }
log.Debugf("[HIJACK PROXY] --> %s", addr) log.WithField("addr", addr).Debug("Proxy hijack request")
var ( var (
d net.Conn d net.Conn

View File

@ -166,7 +166,7 @@ func (n *Node) RefreshContainers(full bool) error {
for _, c := range containers { for _, c := range containers {
merged, err = n.updateContainer(c, merged, full) merged, err = n.updateContainer(c, merged, full)
if err != nil { if err != nil {
log.Errorf("[%s/%s] Unable to update state of %s", n.ID, n.Name, c.Id) log.WithFields(log.Fields{"name": n.Name, "id": n.ID}).Errorf("Unable to update state of container %q", c.Id)
} }
} }
@ -174,7 +174,7 @@ func (n *Node) RefreshContainers(full bool) error {
defer n.Unlock() defer n.Unlock()
n.containers = merged n.containers = merged
log.Debugf("[%s/%s] Updated state", n.ID, n.Name) log.WithFields(log.Fields{"id": n.ID, "name": n.Name}).Debugf("Updated node state")
return nil return nil
} }
@ -264,15 +264,15 @@ func (n *Node) refreshLoop() {
n.emitEvent("node_disconnect") n.emitEvent("node_disconnect")
} }
n.healthy = false n.healthy = false
log.Errorf("[%s/%s] Flagging node as dead. Updated state failed: %v", n.ID, n.Name, err) log.WithFields(log.Fields{"name": n.Name, "id": n.ID}).Errorf("Flagging node as dead. Updated state failed: %v", err)
} else { } else {
if !n.healthy { if !n.healthy {
log.Infof("[%s/%s] Node came back to life. Hooray!", n.ID, n.Name) log.WithFields(log.Fields{"name": n.Name, "id": n.ID}).Info("Node came back to life. Hooray!")
n.client.StopAllMonitorEvents() n.client.StopAllMonitorEvents()
n.client.StartMonitorEvents(n.handler, nil) n.client.StartMonitorEvents(n.handler, nil)
n.emitEvent("node_reconnect") n.emitEvent("node_reconnect")
if err := n.updateSpecs(); err != nil { if err := n.updateSpecs(); err != nil {
log.Errorf("[%s/%s] Update node specs failed: %v", n.ID, n.Name, err) log.WithFields(log.Fields{"name": n.Name, "id": n.ID}).Errorf("Update node specs failed: %v", err)
} }
} }
n.healthy = true n.healthy = true

View File

@ -76,6 +76,7 @@ func (s *ConsulDiscoveryService) Fetch() ([]*discovery.Node, error) {
func (s *ConsulDiscoveryService) Watch(callback discovery.WatchCallback) { func (s *ConsulDiscoveryService) Watch(callback discovery.WatchCallback) {
for _ = range s.waitForChange() { for _ = range s.waitForChange() {
log.WithField("name", "consul").Debug("Discovery watch triggered")
nodes, err := s.Fetch() nodes, err := s.Fetch()
if err == nil { if err == nil {
callback(nodes) callback(nodes)
@ -100,7 +101,7 @@ func (s *ConsulDiscoveryService) waitForChange() <-chan uint64 {
WaitTime: s.heartbeat} WaitTime: s.heartbeat}
_, meta, err := kv.List(s.prefix, option) _, meta, err := kv.List(s.prefix, option)
if err != nil { if err != nil {
log.Errorln(err) log.WithField("name", "consul").Errorf("Discovery error: %v", err)
break break
} }
s.lastIndex = meta.LastIndex s.lastIndex = meta.LastIndex

View File

@ -49,7 +49,7 @@ func Register(scheme string, d DiscoveryService) error {
if _, exists := discoveries[scheme]; exists { if _, exists := discoveries[scheme]; exists {
return fmt.Errorf("scheme already registered %s", scheme) return fmt.Errorf("scheme already registered %s", scheme)
} }
log.Debugf("Registering %q discovery service", scheme) log.WithField("name", scheme).Debug("Registering discovery service")
discoveries[scheme] = d discoveries[scheme] = d
return nil return nil
@ -69,7 +69,7 @@ func New(rawurl string, heartbeat int) (DiscoveryService, error) {
scheme, uri := parse(rawurl) scheme, uri := parse(rawurl)
if discovery, exists := discoveries[scheme]; exists { if discovery, exists := discoveries[scheme]; exists {
log.Debugf("Initializing %q discovery service with %q", scheme, uri) log.WithFields(log.Fields{"name": scheme, "uri": uri}).Debug("Initializing discovery service")
err := discovery.Initialize(uri, heartbeat) err := discovery.Initialize(uri, heartbeat)
return discovery, err return discovery, err
} }

View File

@ -73,7 +73,7 @@ func (s *EtcdDiscoveryService) Watch(callback discovery.WatchCallback) {
watchChan := make(chan *etcd.Response) watchChan := make(chan *etcd.Response)
go s.client.Watch(s.path, 0, true, watchChan, nil) go s.client.Watch(s.path, 0, true, watchChan, nil)
for _ = range watchChan { for _ = range watchChan {
log.Debugf("[ETCD] Watch triggered") log.WithField("name", "etcd").Debug("Discovery watch triggered")
nodes, err := s.Fetch() nodes, err := s.Fetch()
if err == nil { if err == nil {
callback(nodes) callback(nodes)

View File

@ -102,7 +102,7 @@ func (s *ZkDiscoveryService) Watch(callback discovery.WatchCallback) {
addrs, _, eventChan, err := s.conn.ChildrenW(s.fullpath()) addrs, _, eventChan, err := s.conn.ChildrenW(s.fullpath())
if err != nil { if err != nil {
log.Debugf("[ZK] Watch aborted") log.WithField("name", "zk").Debug("Discovery watch aborted")
return return
} }
nodes, err := s.createNodes(addrs) nodes, err := s.createNodes(addrs)
@ -112,7 +112,7 @@ func (s *ZkDiscoveryService) Watch(callback discovery.WatchCallback) {
for e := range eventChan { for e := range eventChan {
if e.Type == zk.EventNodeChildrenChanged { if e.Type == zk.EventNodeChildrenChanged {
log.Debugf("[ZK] Watch triggered") log.WithField("name", "zk").Debug("Discovery watch triggered")
nodes, err := s.Fetch() nodes, err := s.Fetch()
if err == nil { if err == nil {
callback(nodes) callback(nodes)

View File

@ -37,7 +37,7 @@ func join(c *cli.Context) {
hb := time.Duration(c.Int("heartbeat")) hb := time.Duration(c.Int("heartbeat"))
for { for {
log.Infof("Registering %q on the discovery service %q every %d seconds...", addr, dflag, hb) log.WithFields(log.Fields{"addr": addr, "discovery": dflag}).Infof("Registering on the discovery service every %d seconds...", hb)
time.Sleep(hb * time.Second) time.Sleep(hb * time.Second)
if err := d.Register(addr); err != nil { if err := d.Register(addr); err != nil {
log.Error(err) log.Error(err)

View File

@ -22,7 +22,7 @@ type logHandler struct {
} }
func (h *logHandler) Handle(e *cluster.Event) error { func (h *logHandler) Handle(e *cluster.Event) error {
log.Printf("event -> status: %q from: %q id: %q node: %q", e.Status, e.From, e.Id, e.Node.Name) log.WithFields(log.Fields{"node": e.Node.Name, "id": e.Id[:12], "from": e.From, "status": e.Status}).Debug("Event received")
return nil return nil
} }
@ -64,10 +64,10 @@ func manage(c *cli.Context) {
// If either --tls or --tlsverify are specified, load the certificates. // If either --tls or --tlsverify are specified, load the certificates.
if c.Bool("tls") || c.Bool("tlsverify") { if c.Bool("tls") || c.Bool("tlsverify") {
if !c.IsSet("tlscert") || !c.IsSet("tlskey") { if !c.IsSet("tlscert") || !c.IsSet("tlskey") {
log.Fatalf("--tlscert and --tlskey must be provided when using --tls") log.Fatal("--tlscert and --tlskey must be provided when using --tls")
} }
if c.Bool("tlsverify") && !c.IsSet("tlscacert") { if c.Bool("tlsverify") && !c.IsSet("tlscacert") {
log.Fatalf("--tlscacert must be provided when using --tlsverify") log.Fatal("--tlscacert must be provided when using --tlsverify")
} }
tlsConfig, err = loadTlsConfig( tlsConfig, err = loadTlsConfig(
c.String("tlscacert"), c.String("tlscacert"),

View File

@ -32,7 +32,7 @@ func New(names []string) ([]Filter, error) {
for _, name := range names { for _, name := range names {
if filter, exists := filters[name]; exists { if filter, exists := filters[name]; exists {
log.Debugf("Initializing %q filter", name) log.WithField("name", name).Debug("Initializing filter")
selectedFilters = append(selectedFilters, filter) selectedFilters = append(selectedFilters, filter)
} else { } else {
return nil, ErrNotSupported return nil, ErrNotSupported

View File

@ -29,7 +29,7 @@ func init() {
func New(name string) (PlacementStrategy, error) { func New(name string) (PlacementStrategy, error) {
if strategy, exists := strategies[name]; exists { if strategy, exists := strategies[name]; exists {
log.Debugf("Initializing %q strategy", name) log.WithField("name", name).Debugf("Initializing strategy")
err := strategy.Initialize() err := strategy.Initialize()
return strategy, err return strategy, err
} }