1
0
mirror of https://github.com/1Panel-dev/1Panel.git synced 2025-03-13 17:24:44 +08:00

feat: 实现 panic 日志打印到文件中

This commit is contained in:
zhengkunwang223 2023-03-07 14:16:26 +08:00
parent e3c78fd57d
commit b0aac42e6f
2 changed files with 15 additions and 1 deletions

View File

@ -8,10 +8,12 @@ import (
"log"
"os"
"path"
"runtime"
"sort"
"strings"
"sync"
"sync/atomic"
"syscall"
"time"
"unsafe"
)
@ -78,6 +80,8 @@ var _asyncBufferPool = sync.Pool{
},
}
var stdErrFileHandler *os.File
func NewWriterFromConfig(c *Config) (RollingWriter, error) {
if c.LogPath == "" || c.FileName == "" {
return nil, ErrInvalidArgument
@ -92,6 +96,16 @@ func NewWriterFromConfig(c *Config) (RollingWriter, error) {
if err != nil {
return nil, err
}
stdErrFileHandler = file
if runtime.GOOS != "windows" {
if err = syscall.Dup2(int(file.Fd()), int(os.Stderr.Fd())); err != nil {
return nil, err
}
runtime.SetFinalizer(stdErrFileHandler, func(fd *os.File) {
fd.Close()
})
}
mng, err := NewManager(c)
if err != nil {

View File

@ -28,8 +28,8 @@ import (
func Start() {
viper.Init()
app.Init()
log.Init()
app.Init()
db.Init()
migration.Init()
validator.Init()