Support aarch64/arm64 by using dup3 instead of dup2
This commit is contained in:
15
log/log.go
15
log/log.go
@@ -5,7 +5,6 @@ import (
|
||||
"log"
|
||||
"log/syslog"
|
||||
"os"
|
||||
"syscall"
|
||||
)
|
||||
|
||||
type Logger struct {
|
||||
@@ -52,18 +51,4 @@ func Reopen() {
|
||||
Log.Notice("Reopened log file per IPC request")
|
||||
}
|
||||
|
||||
// If there are any existing fd's (e.g. we're reopening logs), we rely
|
||||
// on garbage collection to clean them up for us.
|
||||
func LogRedirectStdOutToFile(logPath string) {
|
||||
path = logPath
|
||||
if logPath == "" {
|
||||
Log.Fatal("Log Path not set")
|
||||
}
|
||||
|
||||
logFile, err := os.OpenFile(logPath, os.O_WRONLY|os.O_APPEND|os.O_CREATE, 0644)
|
||||
if err != nil {
|
||||
Log.Fatal(err)
|
||||
}
|
||||
syscall.Dup2(int(logFile.Fd()), 1)
|
||||
syscall.Dup2(int(logFile.Fd()), 2)
|
||||
}
|
||||
|
||||
25
log/log_redirect.go
Normal file
25
log/log_redirect.go
Normal file
@@ -0,0 +1,25 @@
|
||||
// +build !arm64
|
||||
|
||||
package log
|
||||
|
||||
import (
|
||||
"os"
|
||||
"syscall"
|
||||
)
|
||||
|
||||
// If there are any existing fd's (e.g. we're reopening logs), we rely
|
||||
// on garbage collection to clean them up for us.
|
||||
func LogRedirectStdOutToFile(logPath string) {
|
||||
path = logPath
|
||||
if logPath == "" {
|
||||
Log.Fatal("Log Path not set")
|
||||
}
|
||||
|
||||
logFile, err := os.OpenFile(logPath, os.O_WRONLY|os.O_APPEND|os.O_CREATE, 0644)
|
||||
if err != nil {
|
||||
Log.Fatal(err)
|
||||
}
|
||||
|
||||
syscall.Dup2(int(logFile.Fd()), 1)
|
||||
syscall.Dup2(int(logFile.Fd()), 2)
|
||||
}
|
||||
23
log/log_redirect_arm64.go
Normal file
23
log/log_redirect_arm64.go
Normal file
@@ -0,0 +1,23 @@
|
||||
package log
|
||||
|
||||
import (
|
||||
"os"
|
||||
"syscall"
|
||||
)
|
||||
|
||||
// If there are any existing fd's (e.g. we're reopening logs), we rely
|
||||
// on garbage collection to clean them up for us.
|
||||
func LogRedirectStdOutToFile(logPath string) {
|
||||
path = logPath
|
||||
if logPath == "" {
|
||||
Log.Fatal("Log Path not set")
|
||||
}
|
||||
|
||||
logFile, err := os.OpenFile(logPath, os.O_WRONLY|os.O_APPEND|os.O_CREATE, 0644)
|
||||
if err != nil {
|
||||
Log.Fatal(err)
|
||||
}
|
||||
|
||||
syscall.Dup3(int(logFile.Fd()), 1, 0)
|
||||
syscall.Dup3(int(logFile.Fd()), 2, 0)
|
||||
}
|
||||
Reference in New Issue
Block a user