mirror of
https://github.com/featurebasedb/featurebase.git
synced 2026-09-07 09:05:55 +00:00
change NewStandardLogger() to only take an io.Writer
This commit is contained in:
parent
36ce12da59
commit
5c52e48b12
3 changed files with 22 additions and 68 deletions
63
logger.go
63
logger.go
|
|
@ -17,7 +17,6 @@ package pilosa
|
|||
import (
|
||||
"io"
|
||||
"log"
|
||||
"os"
|
||||
)
|
||||
|
||||
// Ensure nopLogger implements interface.
|
||||
|
|
@ -27,7 +26,6 @@ var _ Logger = &nopLogger{}
|
|||
type Logger interface {
|
||||
Printf(format string, v ...interface{})
|
||||
Debugf(format string, v ...interface{})
|
||||
Close() error
|
||||
}
|
||||
|
||||
func init() {
|
||||
|
|
@ -45,34 +43,15 @@ func (n *nopLogger) Printf(format string, v ...interface{}) {}
|
|||
// Debugf is a no-op implementation of the Logger Debugf method.
|
||||
func (n *nopLogger) Debugf(format string, v ...interface{}) {}
|
||||
|
||||
// Close is a no-op implementation of the Logger Close method.
|
||||
func (n *nopLogger) Close() error { return nil }
|
||||
|
||||
// StandardLogger is a basic implementation of pilosa.Logger based on log.Logger.
|
||||
type StandardLogger struct {
|
||||
logger *log.Logger
|
||||
f *os.File
|
||||
}
|
||||
|
||||
func NewStandardLogger(path string, defaultWriter io.Writer) (*StandardLogger, error) {
|
||||
var lw io.Writer
|
||||
var err error
|
||||
var f *os.File
|
||||
|
||||
if path == "" {
|
||||
lw = defaultWriter
|
||||
} else {
|
||||
f, err = os.OpenFile(path, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0600)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
lw = f
|
||||
}
|
||||
|
||||
func NewStandardLogger(w io.Writer) *StandardLogger {
|
||||
return &StandardLogger{
|
||||
logger: log.New(lw, "", log.LstdFlags),
|
||||
f: f,
|
||||
}, nil
|
||||
logger: log.New(w, "", log.LstdFlags),
|
||||
}
|
||||
}
|
||||
|
||||
func (s *StandardLogger) Printf(format string, v ...interface{}) {
|
||||
|
|
@ -81,13 +60,6 @@ func (s *StandardLogger) Printf(format string, v ...interface{}) {
|
|||
|
||||
func (s *StandardLogger) Debugf(format string, v ...interface{}) {}
|
||||
|
||||
func (s *StandardLogger) Close() error {
|
||||
if s.f == nil {
|
||||
return nil
|
||||
}
|
||||
return s.f.Close()
|
||||
}
|
||||
|
||||
func (s *StandardLogger) Logger() *log.Logger {
|
||||
return s.logger
|
||||
}
|
||||
|
|
@ -95,28 +67,12 @@ func (s *StandardLogger) Logger() *log.Logger {
|
|||
// VerboseLogger is an implementation of pilosa.Logger which includes debug messages.
|
||||
type VerboseLogger struct {
|
||||
logger *log.Logger
|
||||
f *os.File
|
||||
}
|
||||
|
||||
func NewVerboseLogger(path string, defaultWriter io.Writer) (*VerboseLogger, error) {
|
||||
var lw io.Writer
|
||||
var err error
|
||||
var f *os.File
|
||||
|
||||
if path == "" {
|
||||
lw = defaultWriter
|
||||
} else {
|
||||
f, err = os.OpenFile(path, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0600)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
lw = f
|
||||
}
|
||||
|
||||
func NewVerboseLogger(w io.Writer) *VerboseLogger {
|
||||
return &VerboseLogger{
|
||||
logger: log.New(lw, "", log.LstdFlags),
|
||||
f: f,
|
||||
}, nil
|
||||
logger: log.New(w, "", log.LstdFlags),
|
||||
}
|
||||
}
|
||||
|
||||
func (vb *VerboseLogger) Printf(format string, v ...interface{}) {
|
||||
|
|
@ -127,13 +83,6 @@ func (vb *VerboseLogger) Debugf(format string, v ...interface{}) {
|
|||
vb.logger.Printf(format, v...)
|
||||
}
|
||||
|
||||
func (vb *VerboseLogger) Close() error {
|
||||
if vb.f == nil {
|
||||
return nil
|
||||
}
|
||||
return vb.f.Close()
|
||||
}
|
||||
|
||||
func (vb *VerboseLogger) Logger() *log.Logger {
|
||||
return vb.logger
|
||||
}
|
||||
|
|
|
|||
|
|
@ -74,7 +74,8 @@ type Command struct {
|
|||
Done chan struct{}
|
||||
|
||||
// Passed to the Gossip implementation.
|
||||
logger *log.Logger
|
||||
logOutput io.Writer
|
||||
logger *log.Logger
|
||||
}
|
||||
|
||||
// NewCommand returns a new instance of Main.
|
||||
|
|
@ -125,18 +126,22 @@ func (m *Command) Run(args ...string) (err error) {
|
|||
|
||||
// SetupLogger sets up the logger based on the configuration.
|
||||
func (m *Command) SetupLogger() error {
|
||||
if m.Config.Verbose {
|
||||
vbl, err := pilosa.NewVerboseLogger(m.Config.LogPath, m.Stderr)
|
||||
var err error
|
||||
if m.Config.LogPath == "" {
|
||||
m.logOutput = m.Stderr
|
||||
} else {
|
||||
m.logOutput, err = os.OpenFile(m.Config.LogPath, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0600)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if m.Config.Verbose {
|
||||
vbl := pilosa.NewVerboseLogger(m.logOutput)
|
||||
m.logger = vbl.Logger()
|
||||
m.Server.Logger = vbl
|
||||
} else {
|
||||
sl, err := pilosa.NewStandardLogger(m.Config.LogPath, m.Stderr)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
sl := pilosa.NewStandardLogger(m.logOutput)
|
||||
m.logger = sl.Logger()
|
||||
m.Server.Logger = sl
|
||||
}
|
||||
|
|
@ -292,9 +297,11 @@ func (m *Command) SetupNetworking() error {
|
|||
|
||||
// Close shuts down the server.
|
||||
func (m *Command) Close() error {
|
||||
var logErr error
|
||||
serveErr := m.Server.Close()
|
||||
logErr := m.Server.Logger.Close()
|
||||
|
||||
if closer, ok := m.logOutput.(io.Closer); ok {
|
||||
logErr = closer.Close()
|
||||
}
|
||||
close(m.Done)
|
||||
if serveErr != nil && logErr != nil {
|
||||
return fmt.Errorf("closing server: '%v', closing logs: '%v'", serveErr, logErr)
|
||||
|
|
|
|||
|
|
@ -43,8 +43,6 @@ func (b *BufferLogger) Printf(format string, v ...interface{}) {
|
|||
|
||||
func (b *BufferLogger) Debugf(format string, v ...interface{}) {}
|
||||
|
||||
func (b *BufferLogger) Close() error { return nil }
|
||||
|
||||
func (b *BufferLogger) ReadAll() ([]byte, error) {
|
||||
return ioutil.ReadAll(b.buf)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue