mirror of
https://github.com/haiwen/seafile-server.git
synced 2025-09-17 15:50:07 +00:00
Redirect STDERR to error log (#709)
* Redirect STDERR to error log * Add dup2.go * Redirect error log to log file --------- Co-authored-by: 杨赫然 <heran.yang@seafile.com>
This commit is contained in:
@@ -27,10 +27,10 @@ import (
|
||||
"github.com/haiwen/seafile-server/fileserver/repomgr"
|
||||
"github.com/haiwen/seafile-server/fileserver/searpc"
|
||||
"github.com/haiwen/seafile-server/fileserver/share"
|
||||
"github.com/haiwen/seafile-server/fileserver/utils"
|
||||
_ "github.com/mattn/go-sqlite3"
|
||||
log "github.com/sirupsen/logrus"
|
||||
"gopkg.in/ini.v1"
|
||||
stdlog "log"
|
||||
|
||||
"net/http/pprof"
|
||||
)
|
||||
@@ -365,6 +365,10 @@ func main() {
|
||||
logFp = fp
|
||||
log.SetOutput(fp)
|
||||
}
|
||||
|
||||
if absLogFile != "" && !logToStdout {
|
||||
utils.Dup(int(logFp.Fd()), int(os.Stderr.Fd()))
|
||||
}
|
||||
// When logFile is "-", use default output (StdOut)
|
||||
|
||||
level, err := log.ParseLevel(option.LogLevel)
|
||||
@@ -412,9 +416,6 @@ func main() {
|
||||
server.Addr = fmt.Sprintf("%s:%d", option.Host, option.Port)
|
||||
server.Handler = router
|
||||
|
||||
errorLog := stdlog.New(log.StandardLogger().Writer(), "", 0)
|
||||
server.ErrorLog = errorLog
|
||||
|
||||
err = server.ListenAndServe()
|
||||
if err != nil {
|
||||
log.Printf("File server exiting: %v", err)
|
||||
@@ -453,6 +454,8 @@ func logRotate() {
|
||||
logFp.Close()
|
||||
logFp = fp
|
||||
}
|
||||
|
||||
utils.Dup(int(logFp.Fd()), int(os.Stderr.Fd()))
|
||||
}
|
||||
|
||||
var rpcclient *searpc.Client
|
||||
|
11
fileserver/utils/dup2.go
Normal file
11
fileserver/utils/dup2.go
Normal file
@@ -0,0 +1,11 @@
|
||||
//go:build !(linux && arm64)
|
||||
|
||||
package utils
|
||||
|
||||
import (
|
||||
"syscall"
|
||||
)
|
||||
|
||||
func Dup(from, to int) error {
|
||||
return syscall.Dup2(from, to)
|
||||
}
|
11
fileserver/utils/dup3.go
Normal file
11
fileserver/utils/dup3.go
Normal file
@@ -0,0 +1,11 @@
|
||||
//go:build linux && arm64
|
||||
|
||||
package utils
|
||||
|
||||
import (
|
||||
"syscall"
|
||||
)
|
||||
|
||||
func Dup(from, to int) error {
|
||||
return syscall.Dup3(from, to, 0)
|
||||
}
|
11
notification-server/dup2.go
Normal file
11
notification-server/dup2.go
Normal file
@@ -0,0 +1,11 @@
|
||||
//go:build !(linux && arm64)
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"syscall"
|
||||
)
|
||||
|
||||
func Dup(from, to int) error {
|
||||
return syscall.Dup2(from, to)
|
||||
}
|
11
notification-server/dup3.go
Normal file
11
notification-server/dup3.go
Normal file
@@ -0,0 +1,11 @@
|
||||
//go:build linux && arm64
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"syscall"
|
||||
)
|
||||
|
||||
func Dup(from, to int) error {
|
||||
return syscall.Dup3(from, to, 0)
|
||||
}
|
@@ -20,7 +20,6 @@ import (
|
||||
"github.com/gorilla/websocket"
|
||||
log "github.com/sirupsen/logrus"
|
||||
"gopkg.in/ini.v1"
|
||||
stdlog "log"
|
||||
)
|
||||
|
||||
var configDir string
|
||||
@@ -197,6 +196,10 @@ func main() {
|
||||
log.SetOutput(fp)
|
||||
}
|
||||
|
||||
if absLogFile != "" && !logToStdout {
|
||||
Dup(int(logFp.Fd()), int(os.Stderr.Fd()))
|
||||
}
|
||||
|
||||
if err := loadJwtPrivateKey(); err != nil {
|
||||
log.Fatalf("Failed to read config: %v", err)
|
||||
}
|
||||
@@ -216,8 +219,6 @@ func main() {
|
||||
server.Addr = fmt.Sprintf("%s:%d", host, port)
|
||||
server.Handler = router
|
||||
|
||||
errorLog := stdlog.New(log.StandardLogger().Writer(), "", 0)
|
||||
server.ErrorLog = errorLog
|
||||
err = server.ListenAndServe()
|
||||
if err != nil {
|
||||
log.Infof("notificationserver exiting: %v", err)
|
||||
@@ -256,6 +257,8 @@ func logRotate() {
|
||||
logFp.Close()
|
||||
logFp = fp
|
||||
}
|
||||
|
||||
Dup(int(logFp.Fd()), int(os.Stderr.Fd()))
|
||||
}
|
||||
|
||||
func newHTTPRouter() *mux.Router {
|
||||
|
Reference in New Issue
Block a user