Merge pull request #2956 from xiang90/log

all pkgs use leveled log
release-2.1
Xiang Li 2015-06-11 15:29:44 -07:00
commit 1c19eb47b5
14 changed files with 90 additions and 62 deletions

View File

@ -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
}

View File

@ -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

View File

@ -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)
}

View File

@ -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)

View File

@ -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

View File

@ -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
}

View File

@ -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

View File

@ -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)
}
}

View File

@ -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
}

View File

@ -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()
}
}

View File

@ -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()

View File

@ -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 {

View File

@ -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)
}
}

View File

@ -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
}
}