WIP replace fmt prints with logger prints and Stderr with LogOutput

This commit is contained in:
Alan Bernstein 2017-06-23 17:27:57 -05:00
parent d5b22a9349
commit 12e6b22abe
5 changed files with 31 additions and 12 deletions

View file

@ -17,6 +17,7 @@ package cmd
import (
"fmt"
"io"
"log"
"os"
"os/signal"
"runtime/pprof"
@ -44,7 +45,20 @@ It will load existing data from the configured
directory, and start listening client connections
on the configured port.`,
RunE: func(cmd *cobra.Command, args []string) error {
fmt.Fprintf(Server.Stderr, "Pilosa %s, build time %s\n", pilosa.Version, pilosa.BuildTime)
// TODO this code is duplicated from server/server.go:Server.Run() because it hasnt run yet
var logOutput io.Writer
if Server.Config.LogPath == "" {
logOutput = stderr
} else {
var err error
logOutput, err = os.OpenFile(Server.Config.LogPath, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0600)
if err != nil {
return err
}
}
logger := log.New(logOutput, "", log.LstdFlags)
logger.Printf("Pilosa %s, build time %s\n", pilosa.Version, pilosa.BuildTime)
// fmt.Fprintf(Server.Stderr, "Pilosa %s, build time %s\n", pilosa.Version, pilosa.BuildTime)
// Start CPU profiling.
if Server.CPUProfile != "" {
@ -73,7 +87,7 @@ on the configured port.`,
signal.Notify(c, os.Interrupt)
select {
case sig := <-c:
fmt.Fprintf(Server.Stderr, "Received %s; gracefully shutting down...\n", sig.String())
logger.Printf("Received %s; gracefully shutting down...\n", sig.String())
// Second signal causes a hard shutdown.
go func() { <-c; os.Exit(1) }()
@ -82,7 +96,7 @@ on the configured port.`,
return err
}
case <-Server.Done:
fmt.Fprintf(Server.Stderr, "Server closed externally")
logger.Printf("Server closed externally")
}
return nil
},

View file

@ -265,7 +265,7 @@ func (f *Fragment) openCache() error {
// Unmarshal cache data.
var pb internal.Cache
if err := proto.Unmarshal(buf, &pb); err != nil {
log.Printf("error unmarshaling cache data, skipping: path=%s, err=%s", path, err)
f.logger().Printf("error unmarshaling cache data, skipping: path=%s, err=%s", path, err)
return nil
}

View file

@ -18,7 +18,6 @@ import (
"fmt"
"io"
"log"
"os"
"golang.org/x/sync/errgroup"
@ -98,9 +97,9 @@ type gossipConfig struct {
}
// NewGossipNodeSet returns a new instance of GossipNodeSet.
func NewGossipNodeSet(name string, gossipHost string, gossipPort int, gossipSeed string, sh pilosa.StatusHandler) *GossipNodeSet {
func NewGossipNodeSet(name string, gossipHost string, gossipPort int, gossipSeed string, sh pilosa.StatusHandler, logOutput io.Writer) *GossipNodeSet {
g := &GossipNodeSet{
LogOutput: os.Stderr,
LogOutput: logOutput,
}
//TODO: pull memberlist config from pilosa.cfg file

View file

@ -92,7 +92,7 @@ func (h *Holder) Open() error {
continue
}
h.logger().Printf("opening index: %s", filepath.Base(fi.Name()))
h.logger().Printf("opening index: %s", filepath.Base(fi.Name())) // TODO h.LogOutput not set until server.go:Server.Open()
index, err := h.newIndex(h.IndexPath(filepath.Base(fi.Name())), filepath.Base(fi.Name()))
if err == ErrName {

View file

@ -22,6 +22,7 @@ import (
"errors"
"fmt"
"io"
"log"
"math/rand"
"net"
"os"
@ -100,7 +101,10 @@ func (m *Command) Run(args ...string) (err error) {
if err = m.Server.Open(); err != nil {
return fmt.Errorf("server.Open: %v", err)
}
fmt.Fprintf(m.Stderr, "Listening as http://%s\n", m.Server.Host)
logger := log.New(m.Server.LogOutput, "", log.LstdFlags) // TODO make this a function?
logger.Printf("Listening as http://%s\n", m.Server.Host)
return nil
}
@ -132,8 +136,10 @@ func (m *Command) SetupServer() error {
m.Server.LogOutput = logFile
}
logger := log.New(m.Server.LogOutput, "", log.LstdFlags)
// Configure holder.
fmt.Fprintf(m.Stderr, "Using data from: %s\n", m.Config.DataDir)
logger.Printf("Using data from: %s\n", m.Config.DataDir)
m.Server.Holder.Path = m.Config.DataDir
m.Server.MetricInterval = time.Duration(m.Config.Metric.PollingInterval)
m.Server.Holder.Stats, err = NewStatsClient(m.Config.Metric.Service, m.Config.Metric.Host)
@ -160,7 +166,7 @@ func (m *Command) SetupServer() error {
switch m.Config.Cluster.Type {
case "http":
m.Server.Broadcaster = httpbroadcast.NewHTTPBroadcaster(m.Server, internalPortStr)
m.Server.BroadcastReceiver = httpbroadcast.NewHTTPBroadcastReceiver(internalPortStr, m.Stderr)
m.Server.BroadcastReceiver = httpbroadcast.NewHTTPBroadcastReceiver(internalPortStr, m.Server.LogOutput)
m.Server.Cluster.NodeSet = httpbroadcast.NewHTTPNodeSet()
err := m.Server.Cluster.NodeSet.(*httpbroadcast.HTTPNodeSet).Join(m.Server.Cluster.Nodes)
if err != nil {
@ -180,7 +186,7 @@ func (m *Command) SetupServer() error {
if err != nil {
gossipHost = m.Config.Host
}
gossipNodeSet := gossip.NewGossipNodeSet(m.Config.Host, gossipHost, gossipPort, gossipSeed, m.Server)
gossipNodeSet := gossip.NewGossipNodeSet(m.Config.Host, gossipHost, gossipPort, gossipSeed, m.Server, m.Server.LogOutput)
m.Server.Cluster.NodeSet = gossipNodeSet
m.Server.Broadcaster = gossipNodeSet
m.Server.BroadcastReceiver = gossipNodeSet