Skip to content

Commit 4cd747e

Browse files
committed
feat: log rotation using lumberjack
1 parent b39600d commit 4cd747e

3 files changed

Lines changed: 21 additions & 19 deletions

File tree

cmd/peerswaplnd/peerswapd/main.go

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import (
44
"context"
55
"errors"
66
"fmt"
7-
"io"
87
core_log "log"
98
"net"
109
"net/http"
@@ -46,6 +45,7 @@ import (
4645
"google.golang.org/grpc"
4746
"google.golang.org/grpc/credentials/insecure"
4847
"google.golang.org/protobuf/encoding/protojson"
48+
"gopkg.in/natefinch/lumberjack.v2"
4949
)
5050

5151
const (
@@ -92,11 +92,10 @@ func run() error {
9292
return err
9393
}
9494

95-
logger, closeFunc, err := NewLndLogger(cfg)
95+
logger, err := NewLndLogger(cfg)
9696
if err != nil {
9797
return err
9898
}
99-
defer closeFunc()
10099
log.SetLogger(logger)
101100

102101
// make datadir
@@ -597,23 +596,31 @@ type LndLogger struct {
597596
loglevel peerswaplnd.LogLevel
598597
}
599598

600-
func NewLndLogger(cfg *peerswaplnd.PeerSwapConfig) (*LndLogger, func() error, error) {
601-
logFile, err := os.OpenFile(filepath.Join(cfg.DataDir, "log"), os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
599+
func NewLndLogger(cfg *peerswaplnd.PeerSwapConfig) (*LndLogger, error) {
600+
logFolder := filepath.Join(cfg.DataDir, "log")
601+
err := os.MkdirAll(logFolder, 0755)
602602
if err != nil {
603-
return nil, nil, err
603+
return nil, err
604604
}
605-
w := io.MultiWriter(os.Stdout, logFile)
605+
logFile := filepath.Join(logFolder, "peerswap.log")
606+
606607
core_log.SetFlags(core_log.LstdFlags | core_log.LUTC)
607-
core_log.SetOutput(w)
608+
core_log.SetOutput(&lumberjack.Logger{
609+
Filename: logFile,
610+
MaxSize: 10, // megabytes
611+
MaxBackups: 5,
612+
MaxAge: 28, // days
613+
Compress: true,
614+
})
608615

609-
return &LndLogger{loglevel: cfg.LogLevel}, logFile.Close, nil
616+
return &LndLogger{loglevel: cfg.LogLevel}, nil
610617
}
611618

612-
func (l *LndLogger) Infof(format string, v ...interface{}) {
619+
func (l *LndLogger) Infof(format string, v ...any) {
613620
core_log.Printf("[INFO] "+format, v...)
614621
}
615622

616-
func (l *LndLogger) Debugf(format string, v ...interface{}) {
623+
func (l *LndLogger) Debugf(format string, v ...any) {
617624
if l.loglevel == peerswaplnd.LOGLEVEL_DEBUG {
618625
core_log.Printf("[DEBUG] "+format, v...)
619626
}

go.mod

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ require (
137137
google.golang.org/genproto v0.0.0-20231016165738-49dd2c1f3d0b // indirect
138138
gopkg.in/errgo.v1 v1.0.1 // indirect
139139
gopkg.in/macaroon-bakery.v2 v2.3.0 // indirect
140-
gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect
140+
gopkg.in/natefinch/lumberjack.v2 v2.2.1
141141
gopkg.in/yaml.v2 v2.4.0 // indirect
142142
gopkg.in/yaml.v3 v3.0.1 // indirect
143143
sigs.k8s.io/yaml v1.3.0 // indirect
@@ -164,7 +164,6 @@ require (
164164
github.com/docker/go-units v0.5.0 // indirect
165165
github.com/golang-jwt/jwt/v4 v4.4.2 // indirect
166166
github.com/golang-migrate/migrate/v4 v4.17.0 // indirect
167-
github.com/golang/mock v1.6.0 // indirect
168167
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
169168
github.com/google/uuid v1.6.0 // indirect
170169
github.com/hashicorp/errwrap v1.1.0 // indirect

go.sum

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9
3838
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
3939
github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0=
4040
github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
41-
github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
4241
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
4342
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
4443
github.com/Masterminds/semver/v3 v3.1.1 h1:hLg3sBzpNErnxhQtUy/mmLR2I9foDujNK030IGemrRc=
@@ -256,8 +255,6 @@ github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt
256255
github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
257256
github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
258257
github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4=
259-
github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc=
260-
github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs=
261258
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
262259
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
263260
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
@@ -951,7 +948,6 @@ golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc
951948
golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
952949
golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
953950
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
954-
golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
955951
golang.org/x/tools v0.1.6-0.20210726203631-07bc1bf47fb2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
956952
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg=
957953
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk=
@@ -1060,8 +1056,8 @@ gopkg.in/macaroon-bakery.v2 v2.3.0/go.mod h1:/8YhtPARXeRzbpEPLmRB66+gQE8/pzBBkWw
10601056
gopkg.in/macaroon.v2 v2.1.0 h1:HZcsjBCzq9t0eBPMKqTN/uSN6JOm78ZJ2INbqcBQOUI=
10611057
gopkg.in/macaroon.v2 v2.1.0/go.mod h1:OUb+TQP/OP0WOerC2Jp/3CwhIKyIa9kQjuc7H24e6/o=
10621058
gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA=
1063-
gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8=
1064-
gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k=
1059+
gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc=
1060+
gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc=
10651061
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
10661062
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
10671063
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=

0 commit comments

Comments
 (0)