mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-06-25 08:11:18 +02:00
build: Append commit hash to the main LND context
It can be disabled via the new `logging.no-commit-hash` config option.
This commit is contained in:
parent
efe08b836e
commit
755ad49440
@ -25,8 +25,9 @@ const (
|
|||||||
//
|
//
|
||||||
//nolint:ll
|
//nolint:ll
|
||||||
type LogConfig struct {
|
type LogConfig struct {
|
||||||
Console *consoleLoggerCfg `group:"console" namespace:"console" description:"The logger writing to stdout and stderr."`
|
Console *consoleLoggerCfg `group:"console" namespace:"console" description:"The logger writing to stdout and stderr."`
|
||||||
File *FileLoggerConfig `group:"file" namespace:"file" description:"The logger writing to LND's standard log file."`
|
File *FileLoggerConfig `group:"file" namespace:"file" description:"The logger writing to LND's standard log file."`
|
||||||
|
NoCommitHash bool `long:"no-commit-hash" description:"If set, the commit-hash of the current build will not be included in log lines by default."`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Validate validates the LogConfig struct values.
|
// Validate validates the LogConfig struct values.
|
||||||
|
@ -6,9 +6,13 @@
|
|||||||
package build
|
package build
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
|
"encoding/hex"
|
||||||
"fmt"
|
"fmt"
|
||||||
"runtime/debug"
|
"runtime/debug"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"github.com/btcsuite/btclog/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@ -101,3 +105,28 @@ func Tags() []string {
|
|||||||
|
|
||||||
return strings.Split(RawTags, ",")
|
return strings.Split(RawTags, ",")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// WithBuildInfo derives a child context with the build information attached as
|
||||||
|
// attributes. At the moment, this only includes the current build's commit
|
||||||
|
// hash.
|
||||||
|
func WithBuildInfo(ctx context.Context, cfg *LogConfig) (context.Context,
|
||||||
|
error) {
|
||||||
|
|
||||||
|
if cfg.NoCommitHash {
|
||||||
|
return ctx, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Convert the commit hash to a byte slice.
|
||||||
|
commitHash, err := hex.DecodeString(CommitHash)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("unable to decode commit hash: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Include the first 3 bytes of the commit hash in the context as an
|
||||||
|
// slog attribute.
|
||||||
|
if len(commitHash) > 3 {
|
||||||
|
commitHash = commitHash[:3]
|
||||||
|
}
|
||||||
|
|
||||||
|
return btclog.WithCtx(ctx, btclog.Hex("rev", commitHash)), nil
|
||||||
|
}
|
||||||
|
13
lnd.go
13
lnd.go
@ -155,6 +155,15 @@ func Main(cfg *Config, lisCfg ListenerCfg, implCfg *ImplementationCfg,
|
|||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
ctx, cancel := context.WithCancel(context.Background())
|
||||||
|
defer cancel()
|
||||||
|
|
||||||
|
ctx, err := build.WithBuildInfo(ctx, cfg.LogConfig)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("unable to add build info to context: %w",
|
||||||
|
err)
|
||||||
|
}
|
||||||
|
|
||||||
mkErr := func(format string, args ...interface{}) error {
|
mkErr := func(format string, args ...interface{}) error {
|
||||||
ltndLog.Errorf("Shutting down because error in main "+
|
ltndLog.Errorf("Shutting down because error in main "+
|
||||||
"method: "+format, args...)
|
"method: "+format, args...)
|
||||||
@ -188,10 +197,6 @@ func Main(cfg *Config, lisCfg ListenerCfg, implCfg *ImplementationCfg,
|
|||||||
strings.Title(BitcoinChainName), network,
|
strings.Title(BitcoinChainName), network,
|
||||||
)
|
)
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
ctx, cancel := context.WithCancel(ctx)
|
|
||||||
defer cancel()
|
|
||||||
|
|
||||||
// Enable http profiling server if requested.
|
// Enable http profiling server if requested.
|
||||||
if cfg.Pprof.Profile != "" {
|
if cfg.Pprof.Profile != "" {
|
||||||
// Create the http handler.
|
// Create the http handler.
|
||||||
|
@ -203,6 +203,7 @@ func (cfg *BaseNodeConfig) GenArgs() []string {
|
|||||||
"--bitcoin.defaultchanconfs=1",
|
"--bitcoin.defaultchanconfs=1",
|
||||||
"--accept-keysend",
|
"--accept-keysend",
|
||||||
"--keep-failed-payment-attempts",
|
"--keep-failed-payment-attempts",
|
||||||
|
"--logging.no-commit-hash",
|
||||||
fmt.Sprintf("--db.batch-commit-interval=%v", commitInterval),
|
fmt.Sprintf("--db.batch-commit-interval=%v", commitInterval),
|
||||||
fmt.Sprintf("--bitcoin.defaultremotedelay=%v", DefaultCSV),
|
fmt.Sprintf("--bitcoin.defaultremotedelay=%v", DefaultCSV),
|
||||||
fmt.Sprintf("--rpclisten=%v", cfg.RPCAddr()),
|
fmt.Sprintf("--rpclisten=%v", cfg.RPCAddr()),
|
||||||
|
@ -994,6 +994,11 @@
|
|||||||
|
|
||||||
[logging]
|
[logging]
|
||||||
|
|
||||||
|
; Whether to exclude the current build's commit hash from log lines. Note that
|
||||||
|
; the commit hash will not currently show up in all LND log lines as this new
|
||||||
|
; feature will take a few versions to propagate through the codebase.
|
||||||
|
; logging.no-commit-hash=false
|
||||||
|
|
||||||
; Disable logging to stdout and stderror.
|
; Disable logging to stdout and stderror.
|
||||||
; logging.console.disable=false
|
; logging.console.disable=false
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user