[#1619] logger: Simplify logger
config reloading
Change-Id: Ide892b250304b8cdb6c279f5f728c3b35f05df54 Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
This commit is contained in:
parent
7df2912a83
commit
af40b267e4
5 changed files with 31 additions and 60 deletions
|
@ -23,16 +23,8 @@ type Logger struct {
|
|||
// Parameters that have been connected to the Logger support its
|
||||
// configuration changing.
|
||||
//
|
||||
// Passing Prm after a successful connection via the NewLogger, connects
|
||||
// the Prm to a new instance of the Logger.
|
||||
//
|
||||
// See also Reload, SetLevelString.
|
||||
// See also Logger.Reload, SetLevelString.
|
||||
type Prm struct {
|
||||
// link to the created Logger
|
||||
// instance; used for a runtime
|
||||
// reconfiguration
|
||||
_log *Logger
|
||||
|
||||
// support runtime rereading
|
||||
level zapcore.Level
|
||||
|
||||
|
@ -73,22 +65,6 @@ func (p *Prm) SetDestination(d string) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
// Reload reloads configuration of a connected instance of the Logger.
|
||||
// Returns ErrLoggerNotConnected if no connection has been performed.
|
||||
// Returns any reconfiguration error from the Logger directly.
|
||||
func (p Prm) Reload() error {
|
||||
if p._log == nil {
|
||||
// incorrect logger usage
|
||||
panic("parameters are not connected to any Logger")
|
||||
}
|
||||
|
||||
return p._log.reload(p)
|
||||
}
|
||||
|
||||
func defaultPrm() *Prm {
|
||||
return new(Prm)
|
||||
}
|
||||
|
||||
// NewLogger constructs a new zap logger instance. Constructing with nil
|
||||
// parameters is safe: default values will be used then.
|
||||
// Passing non-nil parameters after a successful creation (non-error) allows
|
||||
|
@ -100,10 +76,7 @@ func defaultPrm() *Prm {
|
|||
// - ISO8601 time encoding.
|
||||
//
|
||||
// Logger records a stack trace for all messages at or above fatal level.
|
||||
func NewLogger(prm *Prm) (*Logger, error) {
|
||||
if prm == nil {
|
||||
prm = defaultPrm()
|
||||
}
|
||||
func NewLogger(prm Prm) (*Logger, error) {
|
||||
switch prm.dest {
|
||||
case DestinationUndefined, DestinationStdout:
|
||||
return newConsoleLogger(prm)
|
||||
|
@ -114,7 +87,7 @@ func NewLogger(prm *Prm) (*Logger, error) {
|
|||
}
|
||||
}
|
||||
|
||||
func newConsoleLogger(prm *Prm) (*Logger, error) {
|
||||
func newConsoleLogger(prm Prm) (*Logger, error) {
|
||||
lvl := zap.NewAtomicLevelAt(prm.level)
|
||||
|
||||
c := zap.NewProductionConfig()
|
||||
|
@ -139,12 +112,11 @@ func newConsoleLogger(prm *Prm) (*Logger, error) {
|
|||
}
|
||||
|
||||
l := &Logger{z: lZap, lvl: lvl}
|
||||
prm._log = l
|
||||
|
||||
return l, nil
|
||||
}
|
||||
|
||||
func newJournaldLogger(prm *Prm) (*Logger, error) {
|
||||
func newJournaldLogger(prm Prm) (*Logger, error) {
|
||||
lvl := zap.NewAtomicLevelAt(prm.level)
|
||||
|
||||
c := zap.NewProductionConfig()
|
||||
|
@ -181,14 +153,12 @@ func newJournaldLogger(prm *Prm) (*Logger, error) {
|
|||
lZap := zap.New(samplingCore, zap.AddStacktrace(zap.NewAtomicLevelAt(zap.FatalLevel)), zap.AddCallerSkip(1))
|
||||
|
||||
l := &Logger{z: lZap, lvl: lvl}
|
||||
prm._log = l
|
||||
|
||||
return l, nil
|
||||
}
|
||||
|
||||
func (l *Logger) reload(prm Prm) error {
|
||||
func (l *Logger) Reload(prm Prm) {
|
||||
l.lvl.SetLevel(prm.level)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (l *Logger) WithOptions(options ...zap.Option) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue