@@ -42,30 +42,42 @@ var (
4242
4343var logWriter io.Writer = os .Stderr
4444
45- func logStderr (msg string , args ... any ) {
46- _ , _ = fmt .Fprintf (os .Stderr , msg , args ... )
47- }
45+ func InitLoggerRedirect (logFileName string , defLog bool ) error {
46+ if logFileName == "stderr" || logFileName == "/dev/stderr" || logFileName == "" {
47+ return nil
48+ }
4849
49- func InitLoggerRedirect (logFileName string ) {
5050 if logFileName == "syslog" {
51- logWriter = InitSyslog ()
52- } else if logFileName != "stderr" && logFileName != "/dev/stderr" && logFileName != "" {
5351 var err error
54- lf , err := os .OpenFile (logFileName , os .O_CREATE | os .O_WRONLY | os .O_APPEND , 0o666 )
55- if err != nil {
56- logStderr ("Couldn't open file %v for writing logs" , logFileName )
57- return
58- }
59- if err = redirectStdout (lf ); err != nil {
60- logStderr ("Couldn't redirect STDOUT to the log file %v" , logFileName )
61- return
52+ logWriter , err = InitSyslog ()
53+ if err == nil {
54+ return nil
6255 }
63- if err = redirectStderr ( lf ); err != nil {
64- logStderr ( "Couldn't redirect STDERR to the log file %v" , logFileName )
65- return
56+
57+ if ! defLog {
58+ return err
6659 }
67- logWriter = lf
60+
61+ // log file is not set and we are deamonizing redirect to default file location
62+ Warn ().Err (err ).Msg ("failed to open syslog. redirecting logs to /var/log/tigrisfs.log" )
63+ logFileName = "/var/log/tigrisfs.log"
64+ }
65+
66+ var err error
67+ lf , err := os .OpenFile (logFileName , os .O_CREATE | os .O_WRONLY | os .O_APPEND , 0o666 )
68+ if err != nil {
69+ return fmt .Errorf ("couldn't open file %v for writing logs: %w" , logFileName , err )
70+ }
71+ if err = redirectStdout (lf ); err != nil {
72+ return fmt .Errorf ("couldn't redirect STDOUT to the log file %v: %w" , logFileName , err )
6873 }
74+ if err = redirectStderr (lf ); err != nil {
75+ return fmt .Errorf ("couldn't redirect STDERR to the log file %v: %w" , logFileName , err )
76+ }
77+
78+ logWriter = lf
79+
80+ return nil
6981}
7082
7183func SetCloudLogLevel (level zerolog.Level ) {
0 commit comments