Browse Source

Merge pull request #2956 from xiang90/log

all pkgs use leveled log
Xiang Li 10 years ago
parent
commit
1c19eb47b5

+ 10 - 8
discovery/discovery.go

@@ -17,7 +17,6 @@ package discovery
 import (
 	"errors"
 	"fmt"
-	"log"
 	"math"
 	"net/http"
 	"net/url"
@@ -27,6 +26,7 @@ import (
 	"strings"
 	"time"
 
+	"github.com/coreos/etcd/Godeps/_workspace/src/github.com/coreos/pkg/capnslog"
 	"github.com/coreos/etcd/Godeps/_workspace/src/github.com/jonboulle/clockwork"
 	"github.com/coreos/etcd/Godeps/_workspace/src/golang.org/x/net/context"
 	"github.com/coreos/etcd/client"
@@ -34,6 +34,8 @@ import (
 )
 
 var (
+	plog = capnslog.NewPackageLogger("github.com/coreos/etcd", "discovery")
+
 	ErrInvalidURL     = errors.New("discovery: invalid URL")
 	ErrBadSizeKey     = errors.New("discovery: size key is bad")
 	ErrSizeNotFound   = errors.New("discovery: size key not found")
@@ -102,7 +104,7 @@ func newProxyFunc(proxy string) (func(*http.Request) (*url.URL, error), error) {
 		return nil, fmt.Errorf("invalid proxy address %q: %v", proxy, err)
 	}
 
-	log.Printf("discovery: using proxy %q", proxyURL.String())
+	plog.Infof("using proxy %q", proxyURL.String())
 	return http.ProxyURL(proxyURL), nil
 }
 
@@ -250,7 +252,7 @@ func (d *discovery) checkCluster() ([]*client.Node, int, uint64, error) {
 func (d *discovery) logAndBackoffForRetry(step string) {
 	d.retries++
 	retryTime := time.Second * (0x1 << d.retries)
-	log.Println("discovery: during", step, "connection to", d.url, "timed out, retrying in", retryTime)
+	plog.Info("during", step, "connection to", d.url, "timed out, retrying in", retryTime)
 	d.clock.Sleep(retryTime)
 }
 
@@ -284,15 +286,15 @@ func (d *discovery) waitNodes(nodes []*client.Node, size int, index uint64) ([]*
 	copy(all, nodes)
 	for _, n := range all {
 		if path.Base(n.Key) == path.Base(d.selfKey()) {
-			log.Printf("discovery: found self %s in the cluster", path.Base(d.selfKey()))
+			plog.Noticef("found self %s in the cluster", path.Base(d.selfKey()))
 		} else {
-			log.Printf("discovery: found peer %s in the cluster", path.Base(n.Key))
+			plog.Noticef("found peer %s in the cluster", path.Base(n.Key))
 		}
 	}
 
 	// wait for others
 	for len(all) < size {
-		log.Printf("discovery: found %d peer(s), waiting for %d more", len(all), size-len(all))
+		plog.Noticef("found %d peer(s), waiting for %d more", len(all), size-len(all))
 		resp, err := w.Next(context.Background())
 		if err != nil {
 			if err == context.DeadlineExceeded {
@@ -300,10 +302,10 @@ func (d *discovery) waitNodes(nodes []*client.Node, size int, index uint64) ([]*
 			}
 			return nil, err
 		}
-		log.Printf("discovery: found peer %s in the cluster", path.Base(resp.Node.Key))
+		plog.Noticef("found peer %s in the cluster", path.Base(resp.Node.Key))
 		all = append(all, resp.Node)
 	}
-	log.Printf("discovery: found %d needed peer(s)", len(all))
+	plog.Noticef("found %d needed peer(s)", len(all))
 	return all, nil
 }
 

+ 6 - 7
discovery/srv.go

@@ -16,7 +16,6 @@ package discovery
 
 import (
 	"fmt"
-	"log"
 	"net"
 	"strings"
 
@@ -41,7 +40,7 @@ func SRVGetCluster(name, dns string, defaultToken string, apurls types.URLs) (st
 	for _, url := range apurls {
 		tcpAddr, err := resolveTCPAddr("tcp", url.Host)
 		if err != nil {
-			log.Printf("discovery: Couldn't resolve host %s during SRV discovery", url.Host)
+			plog.Errorf("couldn't resolve host %s during SRV discovery", url.Host)
 			return "", "", err
 		}
 		tcpAPUrls = append(tcpAPUrls, tcpAddr.String())
@@ -57,7 +56,7 @@ func SRVGetCluster(name, dns string, defaultToken string, apurls types.URLs) (st
 			host := net.JoinHostPort(target, fmt.Sprintf("%d", srv.Port))
 			tcpAddr, err := resolveTCPAddr("tcp", host)
 			if err != nil {
-				log.Printf("discovery: Couldn't resolve host %s during SRV discovery", host)
+				plog.Warningf("couldn't resolve host %s during SRV discovery", host)
 				continue
 			}
 			n := ""
@@ -71,7 +70,7 @@ func SRVGetCluster(name, dns string, defaultToken string, apurls types.URLs) (st
 				tempName += 1
 			}
 			stringParts = append(stringParts, fmt.Sprintf("%s=%s%s", n, prefix, host))
-			log.Printf("discovery: Got bootstrap from DNS for %s at %s%s", service, prefix, host)
+			plog.Noticef("got bootstrap from DNS for %s at %s%s", service, prefix, host)
 		}
 		return nil
 	}
@@ -79,16 +78,16 @@ func SRVGetCluster(name, dns string, defaultToken string, apurls types.URLs) (st
 	failCount := 0
 	err := updateNodeMap("etcd-server-ssl", "https://")
 	if err != nil {
-		log.Printf("discovery: Error querying DNS SRV records for _etcd-server-ssl %s", err)
+		plog.Warningf("error querying DNS SRV records for _etcd-server-ssl %s", err)
 		failCount += 1
 	}
 	err = updateNodeMap("etcd-server", "http://")
 	if err != nil {
-		log.Printf("discovery: Error querying DNS SRV records for _etcd-server %s", err)
+		plog.Warningf("discovery: error querying DNS SRV records for _etcd-server %s", err)
 		failCount += 1
 	}
 	if failCount == 2 {
-		log.Printf("discovery: SRV discovery failed: too many errors querying DNS SRV records")
+		plog.Errorf("SRV discovery failed: too many errors querying DNS SRV records")
 		return "", "", err
 	}
 	return strings.Join(stringParts, ","), defaultToken, nil

+ 7 - 2
etcdserver/etcdhttp/httptypes/errors.go

@@ -16,8 +16,13 @@ package httptypes
 
 import (
 	"encoding/json"
-	"log"
 	"net/http"
+
+	"github.com/coreos/etcd/Godeps/_workspace/src/github.com/coreos/pkg/capnslog"
+)
+
+var (
+	plog = capnslog.NewPackageLogger("github.com/coreos/etcd/etcdserver/etcdhttp", "httptypes")
 )
 
 type HTTPError struct {
@@ -36,7 +41,7 @@ func (e HTTPError) WriteTo(w http.ResponseWriter) {
 	w.WriteHeader(e.Code)
 	b, err := json.Marshal(e)
 	if err != nil {
-		log.Panicf("marshal HTTPError should never fail: %v", err)
+		plog.Panicf("marshal HTTPError should never fail (%v)", err)
 	}
 	w.Write(b)
 }

+ 21 - 17
etcdserver/security/security.go

@@ -17,13 +17,13 @@ package security
 import (
 	"encoding/json"
 	"fmt"
-	"log"
 	"path"
 	"reflect"
 	"sort"
 	"strings"
 	"time"
 
+	"github.com/coreos/etcd/Godeps/_workspace/src/github.com/coreos/pkg/capnslog"
 	"github.com/coreos/etcd/Godeps/_workspace/src/golang.org/x/crypto/bcrypt"
 	"github.com/coreos/etcd/Godeps/_workspace/src/golang.org/x/net/context"
 	etcderr "github.com/coreos/etcd/error"
@@ -43,6 +43,10 @@ const (
 	GuestRoleName = "guest"
 )
 
+var (
+	plog = capnslog.NewPackageLogger("github.com/coreos/etcd/etcdserver", "security")
+)
+
 var rootRole = Role{
 	Role: RootRoleName,
 	Permissions: Permissions{
@@ -186,7 +190,7 @@ func (s *Store) CreateOrUpdateUser(user User) (out User, created bool, err error
 func (s *Store) CreateUser(user User) (User, error) {
 	u, err := s.createUserInternal(user)
 	if err == nil {
-		log.Printf("security: created user %s", user.User)
+		plog.Noticef("created user %s", user.User)
 	}
 	return u, err
 }
@@ -225,7 +229,7 @@ func (s *Store) DeleteUser(name string) error {
 		}
 		return err
 	}
-	log.Printf("security: deleted user %s", name)
+	plog.Noticef("deleted user %s", name)
 	return nil
 }
 
@@ -251,7 +255,7 @@ func (s *Store) UpdateUser(user User) (User, error) {
 	}
 	_, err = s.updateResource("/users/"+user.User, newUser)
 	if err == nil {
-		log.Printf("security: updated user %s", user.User)
+		plog.Noticef("updated user %s", user.User)
 	}
 	return newUser, err
 }
@@ -320,7 +324,7 @@ func (s *Store) CreateRole(role Role) error {
 		}
 	}
 	if err == nil {
-		log.Printf("security: created new role %s", role.Role)
+		plog.Noticef("created new role %s", role.Role)
 	}
 	return err
 }
@@ -338,7 +342,7 @@ func (s *Store) DeleteRole(name string) error {
 		}
 	}
 	if err == nil {
-		log.Printf("security: deleted role %s", name)
+		plog.Noticef("deleted role %s", name)
 	}
 	return err
 }
@@ -365,7 +369,7 @@ func (s *Store) UpdateRole(role Role) (Role, error) {
 	}
 	_, err = s.updateResource("/roles/"+role.Role, newRole)
 	if err == nil {
-		log.Printf("security: updated role %s", role.Role)
+		plog.Noticef("updated role %s", role.Role)
 	}
 	return newRole, err
 }
@@ -384,18 +388,18 @@ func (s *Store) EnableSecurity() error {
 	}
 	_, err = s.GetRole(GuestRoleName)
 	if err != nil {
-		log.Printf("security: no guest role access found, creating default")
+		plog.Printf("no guest role access found, creating default")
 		err := s.CreateRole(guestRole)
 		if err != nil {
-			log.Printf("security: error creating guest role. aborting security enable.")
+			plog.Errorf("error creating guest role. aborting security enable.")
 			return err
 		}
 	}
 	err = s.enableSecurity()
 	if err == nil {
-		log.Printf("security: enabled security")
+		plog.Noticef("security: enabled security")
 	} else {
-		log.Printf("error enabling security: %v", err)
+		plog.Errorf("error enabling security (%v)", err)
 	}
 	return err
 }
@@ -406,9 +410,9 @@ func (s *Store) DisableSecurity() error {
 	}
 	err := s.disableSecurity()
 	if err == nil {
-		log.Printf("security: disabled security")
+		plog.Noticef("security: disabled security")
 	} else {
-		log.Printf("error disabling security: %v", err)
+		plog.Errorf("error disabling security (%v)", err)
 	}
 	return err
 }
@@ -435,14 +439,14 @@ func (u User) Merge(n User) (User, error) {
 	currentRoles := types.NewUnsafeSet(u.Roles...)
 	for _, g := range n.Grant {
 		if currentRoles.Contains(g) {
-			log.Printf("Granting duplicate role %s for user %s", g, n.User)
+			plog.Noticef("granting duplicate role %s for user %s", g, n.User)
 			continue
 		}
 		currentRoles.Add(g)
 	}
 	for _, r := range n.Revoke {
 		if !currentRoles.Contains(r) {
-			log.Printf("Revoking ungranted role %s for user %s", r, n.User)
+			plog.Noticef("revoking ungranted role %s for user %s", r, n.User)
 			continue
 		}
 		currentRoles.Remove(r)
@@ -544,7 +548,7 @@ func (rw rwPermission) Revoke(n rwPermission) (rwPermission, error) {
 	currentRead := types.NewUnsafeSet(rw.Read...)
 	for _, r := range n.Read {
 		if !currentRead.Contains(r) {
-			log.Printf("Revoking ungranted read permission %s", r)
+			plog.Noticef("revoking ungranted read permission %s", r)
 			continue
 		}
 		currentRead.Remove(r)
@@ -552,7 +556,7 @@ func (rw rwPermission) Revoke(n rwPermission) (rwPermission, error) {
 	currentWrite := types.NewUnsafeSet(rw.Write...)
 	for _, w := range n.Write {
 		if !currentWrite.Contains(w) {
-			log.Printf("Revoking ungranted write permission %s", w)
+			plog.Noticef("revoking ungranted write permission %s", w)
 			continue
 		}
 		currentWrite.Remove(w)

+ 3 - 4
etcdserver/security/security_requests.go

@@ -16,7 +16,6 @@ package security
 
 import (
 	"encoding/json"
-	"log"
 	"path"
 
 	"github.com/coreos/etcd/Godeps/_workspace/src/golang.org/x/net/context"
@@ -46,7 +45,7 @@ func (s *Store) ensureSecurityDirectories() error {
 					continue
 				}
 			}
-			log.Println("security: Trying to create security directories in the store; failed:", err)
+			plog.Errorf("failed to create security directories in the store (%v)", err)
 			return err
 		}
 	}
@@ -93,14 +92,14 @@ func (s *Store) detectSecurity() bool {
 				return false
 			}
 		}
-		log.Println("security: Trying to detect security settings failed:", err)
+		plog.Errorf("failed to detect security settings (%s)", err)
 		return false
 	}
 
 	var u bool
 	err = json.Unmarshal([]byte(*value.Event.Node.Value), &u)
 	if err != nil {
-		log.Println("security: internal bookkeeping value for enabled isn't valid JSON")
+		plog.Errorf("internal bookkeeping value for enabled isn't valid JSON (%v)", err)
 		return false
 	}
 	return u

+ 1 - 2
etcdserver/stats/leader.go

@@ -16,7 +16,6 @@ package stats
 
 import (
 	"encoding/json"
-	"log"
 	"math"
 	"sync"
 	"time"
@@ -47,7 +46,7 @@ func (ls *LeaderStats) JSON() []byte {
 	b, err := json.Marshal(stats)
 	// TODO(jonboulle): appropriate error handling?
 	if err != nil {
-		log.Printf("stats: error marshalling leader stats: %v", err)
+		plog.Errorf("error marshalling leader stats (%v)", err)
 	}
 	return b
 }

+ 6 - 0
etcdserver/stats/stats.go

@@ -14,6 +14,12 @@
 
 package stats
 
+import "github.com/coreos/etcd/Godeps/_workspace/src/github.com/coreos/pkg/capnslog"
+
+var (
+	plog = capnslog.NewPackageLogger("github.com/coreos/etcd/etcdserver", "stats")
+)
+
 type Stats interface {
 	// SelfStats returns the struct representing statistics of this server
 	SelfStats() []byte

+ 7 - 3
pkg/flags/flag.go

@@ -17,14 +17,18 @@ package flags
 import (
 	"flag"
 	"fmt"
-	"log"
 	"net/url"
 	"os"
 	"strings"
 
+	"github.com/coreos/etcd/Godeps/_workspace/src/github.com/coreos/pkg/capnslog"
 	"github.com/coreos/etcd/pkg/transport"
 )
 
+var (
+	plog = capnslog.NewPackageLogger("github.com/coreos/etcd/pkg", "flags")
+)
+
 // DeprecatedFlag encapsulates a flag that may have been previously valid but
 // is now deprecated. If a DeprecatedFlag is set, an error occurs.
 type DeprecatedFlag struct {
@@ -52,7 +56,7 @@ func (f *IgnoredFlag) IsBoolFlag() bool {
 }
 
 func (f *IgnoredFlag) Set(s string) error {
-	log.Printf(`WARNING: flag "-%s" is no longer supported - ignoring.`, f.Name)
+	plog.Warningf(`flag "-%s" is no longer supported - ignoring.`, f.Name)
 	return nil
 }
 
@@ -96,7 +100,7 @@ func SetBindAddrFromAddr(fs *flag.FlagSet, bindAddrFlagName, addrFlagName string
 	addr := *fs.Lookup(addrFlagName).Value.(*IPAddressPort)
 	addr.IP = "::"
 	if err := fs.Set(bindAddrFlagName, addr.String()); err != nil {
-		log.Panicf("etcdmain: unexpected flags set error: %v", err)
+		plog.Panicf("unexpected flags set error: %v", err)
 	}
 }
 

+ 1 - 2
pkg/flags/urls.go

@@ -15,7 +15,6 @@
 package flags
 
 import (
-	"log"
 	"strings"
 
 	"github.com/coreos/etcd/pkg/types"
@@ -47,7 +46,7 @@ func (us *URLsValue) String() string {
 func NewURLsValue(init string) *URLsValue {
 	v := &URLsValue{}
 	if err := v.Set(init); err != nil {
-		log.Panicf("new URLsValue should never fail: %v", err)
+		plog.Panicf("new URLsValue should never fail: %v", err)
 	}
 	return v
 }

+ 7 - 4
pkg/netutil/netutil.go

@@ -16,14 +16,17 @@ package netutil
 
 import (
 	"encoding/base64"
-	"log"
 	"net"
 	"net/http"
 	"net/url"
 	"strings"
+
+	"github.com/coreos/etcd/Godeps/_workspace/src/github.com/coreos/pkg/capnslog"
 )
 
 var (
+	plog = capnslog.NewPackageLogger("github.com/coreos/etcd/pkg", "netutil")
+
 	// indirection for testing
 	resolveTCPAddr = net.ResolveTCPAddr
 )
@@ -36,7 +39,7 @@ func ResolveTCPAddrs(urls ...[]url.URL) error {
 		for i, u := range us {
 			host, _, err := net.SplitHostPort(u.Host)
 			if err != nil {
-				log.Printf("netutil: Could not parse url %s during tcp resolving.", u.Host)
+				plog.Errorf("could not parse url %s during tcp resolving", u.Host)
 				return err
 			}
 			if host == "localhost" {
@@ -47,10 +50,10 @@ func ResolveTCPAddrs(urls ...[]url.URL) error {
 			}
 			tcpAddr, err := resolveTCPAddr("tcp", u.Host)
 			if err != nil {
-				log.Printf("netutil: Could not resolve host: %s", u.Host)
+				plog.Errorf("could not resolve host %s", u.Host)
 				return err
 			}
-			log.Printf("netutil: Resolving %s to %s", u.Host, tcpAddr.String())
+			plog.Infof("resolving %s to %s", u.Host, tcpAddr.String())
 			us[i].Host = tcpAddr.String()
 		}
 	}

+ 1 - 2
pkg/osutil/interrupt_unix.go

@@ -17,7 +17,6 @@
 package osutil
 
 import (
-	"log"
 	"os"
 	"os/signal"
 	"sync"
@@ -58,7 +57,7 @@ func HandleInterrupts() {
 
 		interruptExitMu.Lock()
 
-		log.Printf("received %v signal, shutting down...", sig)
+		plog.Noticef("received %v signal, shutting down...", sig)
 
 		for _, h := range ihs {
 			h()

+ 6 - 0
pkg/osutil/osutil.go

@@ -17,6 +17,12 @@ package osutil
 import (
 	"os"
 	"strings"
+
+	"github.com/coreos/etcd/Godeps/_workspace/src/github.com/coreos/pkg/capnslog"
+)
+
+var (
+	plog = capnslog.NewPackageLogger("github.com/coreos/etcd/pkg", "osutil")
 )
 
 func Unsetenv(key string) error {

+ 7 - 3
pkg/pbutil/pbutil.go

@@ -14,7 +14,11 @@
 
 package pbutil
 
-import "log"
+import "github.com/coreos/etcd/Godeps/_workspace/src/github.com/coreos/pkg/capnslog"
+
+var (
+	plog = capnslog.NewPackageLogger("github.com/coreos/etcd/pkg", "flags")
+)
 
 type Marshaler interface {
 	Marshal() (data []byte, err error)
@@ -27,14 +31,14 @@ type Unmarshaler interface {
 func MustMarshal(m Marshaler) []byte {
 	d, err := m.Marshal()
 	if err != nil {
-		log.Panicf("marshal protobuf type should never fail: %v", err)
+		plog.Panicf("marshal should never fail (%v)", err)
 	}
 	return d
 }
 
 func MustUnmarshal(um Unmarshaler, data []byte) {
 	if err := um.Unmarshal(data); err != nil {
-		log.Panicf("unmarshal protobuf type should never fail: %v", err)
+		plog.Panicf("unmarshal should never fail (%v)", err)
 	}
 }
 

+ 7 - 8
wal/repair.go

@@ -16,7 +16,6 @@ package wal
 
 import (
 	"io"
-	"log"
 	"os"
 	"path"
 
@@ -58,35 +57,35 @@ func Repair(dirpath string) bool {
 		case io.EOF:
 			return true
 		case io.ErrUnexpectedEOF:
-			log.Printf("wal: repairing %v", f.Name())
+			plog.Noticef("repairing %v", f.Name())
 			bf, bferr := os.Create(f.Name() + ".broken")
 			if bferr != nil {
-				log.Printf("wal: could not repair %v, failed to create backup file", f.Name())
+				plog.Errorf("could not repair %v, failed to create backup file", f.Name())
 				return false
 			}
 			defer bf.Close()
 
 			if _, err = f.Seek(0, os.SEEK_SET); err != nil {
-				log.Printf("wal: could not repair %v, failed to read file", f.Name())
+				plog.Errorf("could not repair %v, failed to read file", f.Name())
 				return false
 			}
 
 			if _, err = io.Copy(bf, f); err != nil {
-				log.Printf("wal: could not repair %v, failed to copy file", f.Name())
+				plog.Errorf("could not repair %v, failed to copy file", f.Name())
 				return false
 			}
 
 			if err = f.Truncate(int64(n)); err != nil {
-				log.Printf("wal: could not repair %v, failed to truncate file", f.Name())
+				plog.Errorf("could not repair %v, failed to truncate file", f.Name())
 				return false
 			}
 			if err = f.Sync(); err != nil {
-				log.Printf("wal: could not repair %v, failed to sync file", f.Name())
+				plog.Errorf("could not repair %v, failed to sync file", f.Name())
 				return false
 			}
 			return true
 		default:
-			log.Printf("wal: could not repair error (%v)", err)
+			plog.Errorf("could not repair error (%v)", err)
 			return false
 		}
 	}