@@ -16,9 +16,10 @@ import (
1616 "time"
1717
1818 "github.com/DatanoiseTV/tinyice/config"
19+ "github.com/DatanoiseTV/tinyice/logger"
1920 "github.com/DatanoiseTV/tinyice/server"
2021 "github.com/DatanoiseTV/tinyice/updater"
21- "github.com/sirupsen/logrus "
22+ "go.uber.org/zap "
2223)
2324
2425var (
@@ -49,48 +50,19 @@ func generateRandomString(n int) string {
4950 return hex .EncodeToString (b )
5051}
5152
52- func initLogging () * logrus.Logger {
53- // Set Level
54- level , err := logrus .ParseLevel (strings .ToLower (* logLevel ))
53+ func initLogging () * zap.SugaredLogger {
54+ _ , err := logger .Init (* logLevel , * jsonLogs , * logFile )
5555 if err != nil {
56- logrus . Warnf ( "Invalid log level '%s', defaulting to info " , * logLevel )
57- level = logrus . InfoLevel
56+ fmt . Printf ( "Failed to initialize logging: %v \n " , err )
57+ os . Exit ( 1 )
5858 }
59- logrus .SetLevel (level )
6059
61- // Set Format
62- var formatter logrus.Formatter
63- if * jsonLogs {
64- formatter = & logrus.JSONFormatter {}
65- } else {
66- formatter = & logrus.TextFormatter {
67- FullTimestamp : true ,
68- }
69- }
70- logrus .SetFormatter (formatter )
71-
72- // Set Output
73- if * logFile != "" {
74- f , err := os .OpenFile (* logFile , os .O_APPEND | os .O_CREATE | os .O_WRONLY , 0644 )
75- if err != nil {
76- logrus .Fatalf ("Failed to open log file %s: %v" , * logFile , err )
77- }
78- logrus .SetOutput (f )
79- } else {
80- logrus .SetOutput (os .Stdout )
81- }
82-
83- // Create Auth Logger if needed
8460 if * authLogFile != "" {
85- authLogger := logrus .New ()
86- authLogger .SetLevel (level )
87- authLogger .SetFormatter (formatter )
88- f , err := os .OpenFile (* authLogFile , os .O_APPEND | os .O_CREATE | os .O_WRONLY , 0644 )
61+ al , err := logger .NewAuthLogger (* logLevel , * jsonLogs , * authLogFile )
8962 if err != nil {
90- logrus .Fatalf ("Failed to open auth log file %s: %v" , * authLogFile , err )
63+ logger . L .Fatalf ("Failed to open auth log file %s: %v" , * authLogFile , err )
9164 }
92- authLogger .SetOutput (f )
93- return authLogger
65+ return al
9466 }
9567
9668 return nil
@@ -129,15 +101,15 @@ func main() {
129101 }
130102
131103 if err := os .WriteFile (actualPidFile , []byte (fmt .Sprintf ("%d" , os .Getpid ())), 0644 ); err != nil {
132- logrus .Errorf ("Failed to write PID file: %v" , err )
104+ logger . L .Errorf ("Failed to write PID file: %v" , err )
133105 }
134106 defer os .Remove (actualPidFile )
135107
136108 ensureConfigExists ()
137109
138110 cfg , err := config .LoadConfig (* configPath )
139111 if err != nil {
140- logrus .Fatalf ("Failed to load config: %v" , err )
112+ logger . L .Fatalf ("Failed to load config: %v" , err )
141113 }
142114
143115 if handleCommands (cfg ) {
@@ -181,7 +153,7 @@ func main() {
181153
182154 go func () {
183155 if err := srv .Start (); err != nil && err .Error () != "http: Server closed" {
184- logrus .Fatalf ("Server failed: %v" , err )
156+ logger . L .Fatalf ("Server failed: %v" , err )
185157 }
186158 }()
187159
@@ -410,7 +382,7 @@ func handleDaemonMode() {
410382 cmd := exec .Command (os .Args [0 ], args ... )
411383 cmd .Env = append (os .Environ (), "TINYICE_DAEMON=1" )
412384 if err := cmd .Start (); err != nil {
413- logrus .Fatalf ("Failed to start daemon: %v" , err )
385+ logger . L .Fatalf ("Failed to start daemon: %v" , err )
414386 }
415387 fmt .Printf ("TinyIce starting in background (PID: %d)\n " , cmd .Process .Pid )
416388 os .Exit (0 )
@@ -419,7 +391,7 @@ func handleDaemonMode() {
419391
420392func ensureConfigExists () {
421393 if _ , err := os .Stat (* configPath ); os .IsNotExist (err ) {
422- logrus .Info ("Config file not found, generating secure defaults..." )
394+ logger . L .Info ("Config file not found, generating secure defaults..." )
423395
424396 defaultSourcePass := generateRandomString (12 )
425397 liveMountPass := generateRandomString (12 )
@@ -457,7 +429,7 @@ func ensureConfigExists() {
457429
458430 data , _ := json .MarshalIndent (defaultCfg , "" , " " )
459431 if err := os .WriteFile (* configPath , data , 0600 ); err != nil {
460- logrus .Fatalf ("Failed to create secure config: %v" , err )
432+ logger . L .Fatalf ("Failed to create secure config: %v" , err )
461433 }
462434
463435 fmt .Println ("**************************************************" )
@@ -469,7 +441,7 @@ func ensureConfigExists() {
469441 fmt .Println (" Stored in:" , * configPath )
470442 fmt .Println ("**************************************************" )
471443 } else {
472- logrus . WithField ( "path" , * configPath ). Info ("Starting TinyIce with existing configuration" )
444+ logger . L . Infow ("Starting TinyIce with existing configuration" , "path" , * configPath )
473445 fmt .Printf ("Note: To reset all credentials, run: rm %s && ./tinyice\n " , * configPath )
474446 }
475447}
@@ -479,21 +451,21 @@ func runEventLoop(srv *server.Server, sigs chan os.Signal) {
479451 sig := <- sigs
480452 switch sig {
481453 case syscall .SIGHUP :
482- logrus .Info ("Received SIGHUP, reloading configuration..." )
454+ logger . L .Info ("Received SIGHUP, reloading configuration..." )
483455 newCfg , err := config .LoadConfig (* configPath )
484456 if err != nil {
485- logrus .Errorf ("Failed to reload config: %v" , err )
457+ logger . L .Errorf ("Failed to reload config: %v" , err )
486458 continue
487459 }
488460 srv .ReloadConfig (newCfg )
489461 case syscall .SIGINT , syscall .SIGTERM :
490- logrus .Infof ("Received %v, shutting down..." , sig )
462+ logger . L .Infof ("Received %v, shutting down..." , sig )
491463 ctx , cancel := context .WithTimeout (context .Background (), 10 * time .Second )
492464 defer cancel ()
493465 if err := srv .Shutdown (ctx ); err != nil {
494- logrus .Errorf ("Graceful shutdown failed: %v" , err )
466+ logger . L .Errorf ("Graceful shutdown failed: %v" , err )
495467 }
496- logrus .Info ("TinyIce stopped" )
468+ logger . L .Info ("TinyIce stopped" )
497469 return
498470 }
499471 }
0 commit comments