@@ -2,53 +2,60 @@ package collectors
22
33import (
44 "fmt"
5- "io"
65 "os"
76 "path/filepath"
87
9- "github.com/btcsuite/btclog"
10- "github.com/jrick/logrotate/rotator"
8+ "github.com/btcsuite/btclog/v2"
119 "github.com/lightningnetwork/lnd/build"
1210)
1311
1412var (
15- logWriter = & build.LogWriter {}
16- backendLog = btclog .NewBackend (logWriter )
17-
1813 // Logger for lndmon's main process.
19- Logger = backendLog .Logger ( "LNDMON" )
14+ Logger btclog .Logger
2015
2116 // htlcLogger is a logger for lndmon's htlc collector.
22- htlcLogger = build . NewSubLogger ( "HTLC" , backendLog . Logger )
17+ htlcLogger btclog. Logger
2318
2419 // paymentLogger is a logger for lndmon's payments monitor.
25- paymentLogger = build .NewSubLogger ("PMNT" , backendLog .Logger )
20+ paymentLogger btclog.Logger
21+
22+ noOpShutdownFunc = func () {}
2623)
2724
2825// initLogRotator initializes the logging rotator to write logs to logFile and
2926// create roll files in the same directory. It must be called before the
3027// package-global log rotator variables are used.
31- func initLogRotator (logFile string , maxLogFileSize int , maxLogFiles int ) error {
28+ func initLogRotator (logFile string , maxLogFileSize , maxLogFiles int ) error {
3229 logDir , _ := filepath .Split (logFile )
33- err := os .MkdirAll (logDir , 0700 )
34- if err != nil {
30+ if err := os .MkdirAll (logDir , 0700 ); err != nil {
3531 return fmt .Errorf ("failed to create log directory: %v" , err )
3632 }
3733
38- r , err := rotator .New (
39- logFile , int64 (maxLogFileSize * 1024 ), false , maxLogFiles ,
40- )
41- if err != nil {
42- return fmt .Errorf ("failed to create file rotator: %v" , err )
34+ // Setup the rotating log writer.
35+ logRotator := build .NewRotatingLogWriter ()
36+ logCfg := build .DefaultLogConfig ()
37+ logCfg .File .MaxLogFileSize = maxLogFileSize
38+ logCfg .File .MaxLogFiles = maxLogFiles
39+ logCfg .File .Compressor = build .Gzip // Optional: or build.Zstd
40+
41+ if err := logRotator .InitLogRotator (logCfg .File , logFile ); err != nil {
42+ return fmt .Errorf ("failed to init log rotator: %w" , err )
4343 }
4444
45- pr , pw := io .Pipe ()
46- go func () {
47- err := r .Run (pr )
48- fmt .Println ("unable to set up logs: " , err )
49- }()
45+ // Create the log handlers (console + rotating file).
46+ logHandlers := build .NewDefaultLogHandlers (logCfg , logRotator )
47+
48+ // Create the subsystem logger manager.
49+ logManager := build .NewSubLoggerManager (logHandlers ... )
50+
51+ // Create subsystem loggers.
52+ Logger = logManager .GenSubLogger ("LNDMON" , noOpShutdownFunc )
53+ htlcLogger = logManager .GenSubLogger ("HTLC" , noOpShutdownFunc )
54+ paymentLogger = logManager .GenSubLogger ("PMNT" , noOpShutdownFunc )
5055
51- logWriter .RotatorPipe = pw
56+ // Set log level.
57+ // TODO: consider making this configurable.
58+ logManager .SetLogLevels ("info" )
5259
5360 return nil
5461}
0 commit comments