@@ -19,6 +19,7 @@ package logger
1919import (
2020 "log"
2121 "os"
22+ "os/user"
2223 "path/filepath"
2324 "sync"
2425)
@@ -42,17 +43,32 @@ func SetLogFile(file string) {
4243}
4344
4445// SetLogDir sets the path to the directory of logs
45- func SetLogDir (dir string ) {
46- logdir = dir
46+ func SetLogDir () {
47+ if os .Getenv ("LOGDIR" ) != "" {
48+ logdir = os .Getenv ("LOGDIR" )
49+ return
50+ }
51+ // Get the current user's information.
52+ currentUser , err := user .Current ()
53+ if err != nil {
54+ log .Fatalf ("Failed to get current user: %v" , err )
55+ }
56+ // for root user, log dir is /var/log
57+ if currentUser .Uid != "0" {
58+ //Non-Root user, setting log directory to user's home directory
59+ homeDir , err := os .UserHomeDir ()
60+ if err != nil {
61+ log .Fatalf ("Failed to get user home directory: %v" , err )
62+ }
63+ logdir = homeDir
64+ }
4765}
4866
4967func initLogger (console bool ) {
5068 if console {
5169 Log = log .New (os .Stdout , logPrefix , log .Lmsgprefix )
5270 } else {
53- if os .Getenv ("LOGDIR" ) != "" {
54- logdir = os .Getenv ("LOGDIR" )
55- }
71+ SetLogDir ()
5672
5773 outfile , err := os .OpenFile (filepath .Join (logdir , logfile ),
5874 os .O_CREATE | os .O_APPEND | os .O_WRONLY , 0666 )
0 commit comments