mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2025-02-07 17:10:07 +08:00
feat: 适配 linux_arm64 windows 环境
This commit is contained in:
parent
25508011e1
commit
e8caec4603
20
backend/log/dup_write_darwin.go
Normal file
20
backend/log/dup_write_darwin.go
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
package log
|
||||||
|
|
||||||
|
import (
|
||||||
|
"os"
|
||||||
|
"runtime"
|
||||||
|
"syscall"
|
||||||
|
)
|
||||||
|
|
||||||
|
var stdErrFileHandler *os.File
|
||||||
|
|
||||||
|
func dupWrite(file *os.File) error {
|
||||||
|
stdErrFileHandler = file
|
||||||
|
if err := syscall.Dup2(int(file.Fd()), int(os.Stderr.Fd())); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
runtime.SetFinalizer(stdErrFileHandler, func(fd *os.File) {
|
||||||
|
fd.Close()
|
||||||
|
})
|
||||||
|
return nil
|
||||||
|
}
|
20
backend/log/dup_write_linux_amd64.go
Normal file
20
backend/log/dup_write_linux_amd64.go
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
package log
|
||||||
|
|
||||||
|
import (
|
||||||
|
"os"
|
||||||
|
"runtime"
|
||||||
|
"syscall"
|
||||||
|
)
|
||||||
|
|
||||||
|
var stdErrFileHandler *os.File
|
||||||
|
|
||||||
|
func dupWrite(file *os.File) error {
|
||||||
|
stdErrFileHandler = file
|
||||||
|
if err := syscall.Dup2(int(file.Fd()), int(os.Stderr.Fd())); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
runtime.SetFinalizer(stdErrFileHandler, func(fd *os.File) {
|
||||||
|
fd.Close()
|
||||||
|
})
|
||||||
|
return nil
|
||||||
|
}
|
20
backend/log/dup_write_linux_arm64.go
Normal file
20
backend/log/dup_write_linux_arm64.go
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
package log
|
||||||
|
|
||||||
|
import (
|
||||||
|
"os"
|
||||||
|
"runtime"
|
||||||
|
"syscall"
|
||||||
|
)
|
||||||
|
|
||||||
|
var stdErrFileHandler *os.File
|
||||||
|
|
||||||
|
func dupWrite(file *os.File) error {
|
||||||
|
stdErrFileHandler = file
|
||||||
|
if err := syscall.Dup3(int(file.Fd()), int(os.Stderr.Fd())); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
runtime.SetFinalizer(stdErrFileHandler, func(fd *os.File) {
|
||||||
|
fd.Close()
|
||||||
|
})
|
||||||
|
return nil
|
||||||
|
}
|
5
backend/log/dup_write_windows.go
Normal file
5
backend/log/dup_write_windows.go
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
package log
|
||||||
|
|
||||||
|
func dupWrite(file *os.File) error {
|
||||||
|
return nil
|
||||||
|
}
|
@ -8,12 +8,10 @@ import (
|
|||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
"path"
|
"path"
|
||||||
"runtime"
|
|
||||||
"sort"
|
"sort"
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
"sync/atomic"
|
"sync/atomic"
|
||||||
"syscall"
|
|
||||||
"time"
|
"time"
|
||||||
"unsafe"
|
"unsafe"
|
||||||
)
|
)
|
||||||
@ -80,33 +78,21 @@ var _asyncBufferPool = sync.Pool{
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
var stdErrFileHandler *os.File
|
|
||||||
|
|
||||||
func NewWriterFromConfig(c *Config) (RollingWriter, error) {
|
func NewWriterFromConfig(c *Config) (RollingWriter, error) {
|
||||||
if c.LogPath == "" || c.FileName == "" {
|
if c.LogPath == "" || c.FileName == "" {
|
||||||
return nil, ErrInvalidArgument
|
return nil, ErrInvalidArgument
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := os.MkdirAll(c.LogPath, 0700); err != nil {
|
if err := os.MkdirAll(c.LogPath, 0700); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
filepath := FilePath(c)
|
filepath := FilePath(c)
|
||||||
file, err := os.OpenFile(filepath, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0644)
|
file, err := os.OpenFile(filepath, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0644)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
stdErrFileHandler = file
|
if err := dupWrite(file); err != nil {
|
||||||
|
|
||||||
if runtime.GOOS != "windows" {
|
|
||||||
if err = syscall.Dup2(int(file.Fd()), int(os.Stderr.Fd())); err != nil {
|
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
runtime.SetFinalizer(stdErrFileHandler, func(fd *os.File) {
|
|
||||||
fd.Close()
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
mng, err := NewManager(c)
|
mng, err := NewManager(c)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -120,7 +106,6 @@ func NewWriterFromConfig(c *Config) (RollingWriter, error) {
|
|||||||
fire: mng.Fire(),
|
fire: mng.Fire(),
|
||||||
cf: c,
|
cf: c,
|
||||||
}
|
}
|
||||||
|
|
||||||
if c.MaxRemain > 0 {
|
if c.MaxRemain > 0 {
|
||||||
writer.rollingfilech = make(chan string, c.MaxRemain)
|
writer.rollingfilech = make(chan string, c.MaxRemain)
|
||||||
dir, err := ioutil.ReadDir(c.LogPath)
|
dir, err := ioutil.ReadDir(c.LogPath)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user