mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-07-25 04:12:29 +02:00
build: dedup logging config
Move all shared code to config.go which has no build tags.
This commit is contained in:
61
build/config.go
Normal file
61
build/config.go
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
package build
|
||||||
|
|
||||||
|
import "github.com/btcsuite/btclog/v2"
|
||||||
|
|
||||||
|
const (
|
||||||
|
callSiteOff = "off"
|
||||||
|
callSiteShort = "short"
|
||||||
|
callSiteLong = "long"
|
||||||
|
)
|
||||||
|
|
||||||
|
// LogConfig holds logging configuration options.
|
||||||
|
//
|
||||||
|
//nolint:lll
|
||||||
|
type LogConfig struct {
|
||||||
|
Console *consoleLoggerCfg `group:"console" namespace:"console" description:"The logger writing to stdout and stderr."`
|
||||||
|
File *LoggerConfig `group:"file" namespace:"file" description:"The logger writing to LND's standard log file."`
|
||||||
|
}
|
||||||
|
|
||||||
|
// LoggerConfig holds options for a particular logger.
|
||||||
|
//
|
||||||
|
//nolint:lll
|
||||||
|
type LoggerConfig struct {
|
||||||
|
Disable bool `long:"disable" description:"Disable this logger."`
|
||||||
|
NoTimestamps bool `long:"no-timestamps" description:"Omit timestamps from log lines."`
|
||||||
|
CallSite string `long:"call-site" description:"Include the call-site of each log line." choice:"off" choice:"short" choice:"long"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// DefaultLogConfig returns the default logging config options.
|
||||||
|
func DefaultLogConfig() *LogConfig {
|
||||||
|
return &LogConfig{
|
||||||
|
Console: defaultConsoleLoggerCfg(),
|
||||||
|
File: &LoggerConfig{
|
||||||
|
CallSite: callSiteOff,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// HandlerOptions returns the set of btclog.HandlerOptions that the state of the
|
||||||
|
// config struct translates to.
|
||||||
|
func (cfg *LoggerConfig) HandlerOptions() []btclog.HandlerOption {
|
||||||
|
opts := []btclog.HandlerOption{
|
||||||
|
// The default skip depth used by the logging library is 6 but
|
||||||
|
// since we wrap the logging handlers with another level of
|
||||||
|
// abstraction with the handlerSet, we increase the skip depth
|
||||||
|
// to 7 here.
|
||||||
|
btclog.WithCallSiteSkipDepth(7),
|
||||||
|
}
|
||||||
|
|
||||||
|
if cfg.NoTimestamps {
|
||||||
|
opts = append(opts, btclog.WithNoTimestamp())
|
||||||
|
}
|
||||||
|
|
||||||
|
switch cfg.CallSite {
|
||||||
|
case callSiteShort:
|
||||||
|
opts = append(opts, btclog.WithCallerFlags(btclog.Lshortfile))
|
||||||
|
case callSiteLong:
|
||||||
|
opts = append(opts, btclog.WithCallerFlags(btclog.Llongfile))
|
||||||
|
}
|
||||||
|
|
||||||
|
return opts
|
||||||
|
}
|
@@ -17,68 +17,8 @@ const (
|
|||||||
faintSeq = "2"
|
faintSeq = "2"
|
||||||
esc = '\x1b'
|
esc = '\x1b'
|
||||||
csi = string(esc) + "["
|
csi = string(esc) + "["
|
||||||
|
|
||||||
callSiteOff = "off"
|
|
||||||
callSiteShort = "short"
|
|
||||||
callSiteLong = "long"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// LogConfig holds logging configuration options.
|
|
||||||
//
|
|
||||||
//nolint:lll
|
|
||||||
type LogConfig struct {
|
|
||||||
Console *consoleLoggerCfg `group:"console" namespace:"console" description:"The logger writing to stdout and stderr."`
|
|
||||||
File *LoggerConfig `group:"file" namespace:"file" description:"The logger writing to LND's standard log file."`
|
|
||||||
}
|
|
||||||
|
|
||||||
// DefaultLogConfig returns the default logging config options.
|
|
||||||
func DefaultLogConfig() *LogConfig {
|
|
||||||
return &LogConfig{
|
|
||||||
Console: &consoleLoggerCfg{
|
|
||||||
LoggerConfig: LoggerConfig{
|
|
||||||
CallSite: callSiteShort,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
File: &LoggerConfig{
|
|
||||||
CallSite: callSiteOff,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// LoggerConfig holds options for a particular logger.
|
|
||||||
//
|
|
||||||
//nolint:lll
|
|
||||||
type LoggerConfig struct {
|
|
||||||
Disable bool `long:"disable" description:"Disable this logger."`
|
|
||||||
NoTimestamps bool `long:"no-timestamps" description:"Omit timestamps from log lines."`
|
|
||||||
CallSite string `long:"call-site" description:"Include the call-site of each log line." choice:"off" choice:"short" choice:"long"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// HandlerOptions returns the set of btclog.HandlerOptions that the state of the
|
|
||||||
// config struct translates to.
|
|
||||||
func (cfg *LoggerConfig) HandlerOptions() []btclog.HandlerOption {
|
|
||||||
opts := []btclog.HandlerOption{
|
|
||||||
// The default skip depth used by the logging library is 6 but
|
|
||||||
// since we wrap the logging handlers with another level of
|
|
||||||
// abstraction with the handlerSet, we increase the skip depth
|
|
||||||
// to 7 here.
|
|
||||||
btclog.WithCallSiteSkipDepth(7),
|
|
||||||
}
|
|
||||||
|
|
||||||
if cfg.NoTimestamps {
|
|
||||||
opts = append(opts, btclog.WithNoTimestamp())
|
|
||||||
}
|
|
||||||
|
|
||||||
switch cfg.CallSite {
|
|
||||||
case callSiteShort:
|
|
||||||
opts = append(opts, btclog.WithCallerFlags(btclog.Lshortfile))
|
|
||||||
case callSiteLong:
|
|
||||||
opts = append(opts, btclog.WithCallerFlags(btclog.Llongfile))
|
|
||||||
}
|
|
||||||
|
|
||||||
return opts
|
|
||||||
}
|
|
||||||
|
|
||||||
// consoleLoggerCfg extends the LoggerConfig struct by adding a Color option
|
// consoleLoggerCfg extends the LoggerConfig struct by adding a Color option
|
||||||
// which is only available for a console logger.
|
// which is only available for a console logger.
|
||||||
//
|
//
|
||||||
@@ -88,6 +28,16 @@ type consoleLoggerCfg struct {
|
|||||||
Style bool `long:"style" description:"If set, the output will be styled with color and fonts"`
|
Style bool `long:"style" description:"If set, the output will be styled with color and fonts"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// defaultConsoleLoggerCfg returns the default consoleLoggerCfg for the dev
|
||||||
|
// console logger.
|
||||||
|
func defaultConsoleLoggerCfg() *consoleLoggerCfg {
|
||||||
|
return &consoleLoggerCfg{
|
||||||
|
LoggerConfig: LoggerConfig{
|
||||||
|
CallSite: callSiteShort,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// HandlerOptions returns the set of btclog.HandlerOptions that the state of the
|
// HandlerOptions returns the set of btclog.HandlerOptions that the state of the
|
||||||
// config struct translates to.
|
// config struct translates to.
|
||||||
func (cfg *consoleLoggerCfg) HandlerOptions() []btclog.HandlerOption {
|
func (cfg *consoleLoggerCfg) HandlerOptions() []btclog.HandlerOption {
|
||||||
|
@@ -3,63 +3,20 @@
|
|||||||
|
|
||||||
package build
|
package build
|
||||||
|
|
||||||
import "github.com/btcsuite/btclog/v2"
|
// consoleLoggerCfg embeds the LoggerConfig struct along with any extensions
|
||||||
|
// specific to a production deployment.
|
||||||
const (
|
|
||||||
callSiteOff = "off"
|
|
||||||
callSiteShort = "short"
|
|
||||||
callSiteLong = "long"
|
|
||||||
)
|
|
||||||
|
|
||||||
// LogConfig holds logging configuration options.
|
|
||||||
//
|
//
|
||||||
//nolint:lll
|
//nolint:lll
|
||||||
type LogConfig struct {
|
type consoleLoggerCfg struct {
|
||||||
Console *LoggerConfig `group:"console" namespace:"console" description:"The logger writing to stdout and stderr."`
|
LoggerConfig
|
||||||
File *LoggerConfig `group:"file" namespace:"file" description:"The logger writing to LND's standard log file."`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// DefaultLogConfig returns the default logging config options.
|
// defaultConsoleLoggerCfg returns the default consoleLoggerCfg for the prod
|
||||||
func DefaultLogConfig() *LogConfig {
|
// console logger.
|
||||||
return &LogConfig{
|
func defaultConsoleLoggerCfg() *consoleLoggerCfg {
|
||||||
Console: &LoggerConfig{
|
return &consoleLoggerCfg{
|
||||||
CallSite: callSiteOff,
|
LoggerConfig: LoggerConfig{
|
||||||
},
|
|
||||||
File: &LoggerConfig{
|
|
||||||
CallSite: callSiteOff,
|
CallSite: callSiteOff,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// LoggerConfig holds options for a particular logger.
|
|
||||||
//
|
|
||||||
//nolint:lll
|
|
||||||
type LoggerConfig struct {
|
|
||||||
Disable bool `long:"disable" description:"Disable this logger."`
|
|
||||||
NoTimestamps bool `long:"no-timestamps" description:"Omit timestamps from log lines."`
|
|
||||||
CallSite string `long:"call-site" description:"Include the call-site of each log line." choice:"off" choice:"short" choice:"long"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// HandlerOptions returns the set of btclog.HandlerOptions that the state of the
|
|
||||||
// config struct translates to.
|
|
||||||
func (cfg *LoggerConfig) HandlerOptions() []btclog.HandlerOption {
|
|
||||||
opts := []btclog.HandlerOption{
|
|
||||||
// The default skip depth used by the logging library is 6 but
|
|
||||||
// since we wrap the logging handlers with another level of
|
|
||||||
// abstraction with the handlerSet, we increase the skip depth
|
|
||||||
// to 7 here.
|
|
||||||
btclog.WithCallSiteSkipDepth(7),
|
|
||||||
}
|
|
||||||
if cfg.NoTimestamps {
|
|
||||||
opts = append(opts, btclog.WithNoTimestamp())
|
|
||||||
}
|
|
||||||
|
|
||||||
switch cfg.CallSite {
|
|
||||||
case callSiteShort:
|
|
||||||
opts = append(opts, btclog.WithCallerFlags(btclog.Lshortfile))
|
|
||||||
case callSiteLong:
|
|
||||||
opts = append(opts, btclog.WithCallerFlags(btclog.Llongfile))
|
|
||||||
}
|
|
||||||
|
|
||||||
return opts
|
|
||||||
}
|
|
||||||
|
Reference in New Issue
Block a user