summaryrefslogtreecommitdiff
path: root/internal
diff options
context:
space:
mode:
authorSanto Cariotti <santo@dcariotti.me>2025-04-08 16:03:34 +0200
committerSanto Cariotti <santo@dcariotti.me>2025-04-08 16:03:34 +0200
commit1e0c611290cdeab4cf263de4f62f99dd125ba428 (patch)
treef03ad437cbc51070a08ef5f1596136cf353dfab6 /internal
parent1f0d9ec8452f15c27cd33c4e3874454c35993743 (diff)
Log on file
Diffstat (limited to 'internal')
-rw-r--r--internal/network/network.go29
1 files changed, 27 insertions, 2 deletions
diff --git a/internal/network/network.go b/internal/network/network.go
index 8283993..efd7dc6 100644
--- a/internal/network/network.go
+++ b/internal/network/network.go
@@ -9,6 +9,8 @@ import (
"time"
"go.uber.org/zap"
+ "go.uber.org/zap/zapcore"
+ "gopkg.in/natefinch/lumberjack.v2"
)
var logger *zap.Logger
@@ -53,13 +55,35 @@ func NewTCPNetwork(localID, localIP string, localPort int) *TCPNetwork {
retryDelay: 2 * time.Second,
}
+ n.setupLogger("rahanna-network.log")
go n.startServer()
- logger, _ = zap.NewProduction()
-
return n
}
+func (n *TCPNetwork) setupLogger(logFile string) {
+ cfg := zap.NewProductionConfig()
+ cfg.OutputPaths = []string{logFile}
+ cfg.ErrorOutputPaths = []string{logFile}
+
+ // Configure lumberjack for log rotation
+ lumberjackLogger := &lumberjack.Logger{
+ Filename: logFile,
+ MaxSize: 100, // megabytes
+ MaxBackups: 5,
+ MaxAge: 30, // days
+ Compress: true,
+ }
+
+ core := zapcore.NewCore(
+ zapcore.NewJSONEncoder(cfg.EncoderConfig),
+ zapcore.AddSync(lumberjackLogger), // Log only to the file via lumberjack
+ cfg.Level,
+ )
+
+ logger = zap.New(core)
+}
+
// Add a new peer connection to the local peer
func (n *TCPNetwork) AddPeer(remoteID string, remoteIP string, remotePort int) {
go n.retryConnect(remoteID, remoteIP, remotePort)
@@ -71,6 +95,7 @@ func (n *TCPNetwork) startServer() {
listener, err := net.Listen("tcp", address)
if err != nil {
logger.Sugar().Errorf("failed to start server: %v", err)
+ return
}
n.listener = listener
logger.Sugar().Infof("server started on %s\n", address)