diff --git a/log/log.go b/log/log.go index 4036d9d..c2b5a43 100644 --- a/log/log.go +++ b/log/log.go @@ -5,7 +5,6 @@ import ( "log" "log/syslog" "os" - "syscall" ) type Logger struct { @@ -13,7 +12,7 @@ type Logger struct { } var ( - Log *Logger + Log *Logger path string ) @@ -23,7 +22,7 @@ func Open(name, logLevelStr string, prio syslog.Priority) *Logger { log.Fatal("Invalid log level specified") } - Log = &Logger { logging.MustGetLogger(name) } + Log = &Logger{logging.MustGetLogger(name)} var formatStdout = logging.MustStringFormatter( "%{color}%{time:2006-01-02T15:04:05.000} %{shortfunc} ▶ %{level:.4s} %{color:reset} %{message}", @@ -64,6 +63,6 @@ func LogRedirectStdOutToFile(logPath string) { if err != nil { Log.Fatal(err) } - syscall.Dup2(int(logFile.Fd()), 1) - syscall.Dup2(int(logFile.Fd()), 2) + + stdFdToLogFile(int(logFile.Fd())) } diff --git a/log/log_redirect.go b/log/log_redirect.go new file mode 100644 index 0000000..b6da910 --- /dev/null +++ b/log/log_redirect.go @@ -0,0 +1,10 @@ +// +build !arm64 + +package log + +import "syscall" + +func stdFdToLogFile(logFileFd int) { + syscall.Dup2(logFileFd, 1) + syscall.Dup2(logFileFd, 2) +} diff --git a/log/log_redirect_arm64.go b/log/log_redirect_arm64.go new file mode 100644 index 0000000..3aeaaaf --- /dev/null +++ b/log/log_redirect_arm64.go @@ -0,0 +1,8 @@ +package log + +import "syscall" + +func stdFdToLogFile(logFileFd int) { + syscall.Dup3(logFileFd, 1, 0) + syscall.Dup3(logFileFd, 2, 0) +}