syslog日志路径 添加windows目录支持
This commit is contained in:
parent
0463bb48fc
commit
28e2d3ea05
51
syslog.go
51
syslog.go
@ -1,37 +1,41 @@
|
||||
package f5
|
||||
|
||||
import (
|
||||
"os"
|
||||
"sync"
|
||||
"time"
|
||||
"fmt"
|
||||
"os"
|
||||
"q5"
|
||||
"runtime"
|
||||
"sync"
|
||||
"time"
|
||||
)
|
||||
|
||||
const (
|
||||
LOG_DEBUG = 0
|
||||
LOG_INFO = iota
|
||||
LOG_NOTICE = iota
|
||||
LOG_WARNING = iota
|
||||
LOG_ERROR = iota
|
||||
LOG_ALERT = iota
|
||||
LOG_DEBUG = 0
|
||||
LOG_INFO = iota
|
||||
LOG_NOTICE = iota
|
||||
LOG_WARNING = iota
|
||||
LOG_ERROR = iota
|
||||
LOG_ALERT = iota
|
||||
LOG_EMERGENCY = iota
|
||||
)
|
||||
|
||||
const SYS_LOG_ROOT = "/data/logs/%s/logs/"
|
||||
const SYS_LOG_FILENAME = "log_%d_%s.log"
|
||||
const (
|
||||
SYS_LOG_ROOT_LINUX = "/data/logs/%s/logs/"
|
||||
SYS_LOG_ROOT_WINDOWS = "d:/linux_root/data/logs/%s/logs/"
|
||||
SYS_LOG_FILENAME = "log_%d_%s.log"
|
||||
)
|
||||
|
||||
type LogMsgNode struct {
|
||||
category int32
|
||||
logMsg string
|
||||
next *LogMsgNode
|
||||
logMsg string
|
||||
next *LogMsgNode
|
||||
}
|
||||
|
||||
type SysLog_ struct {
|
||||
logLevel int32
|
||||
topNode *LogMsgNode
|
||||
botNode *LogMsgNode
|
||||
msgMutex sync.Mutex
|
||||
logLevel int32
|
||||
topNode *LogMsgNode
|
||||
botNode *LogMsgNode
|
||||
msgMutex sync.Mutex
|
||||
chGoSaveExit chan int
|
||||
}
|
||||
|
||||
@ -128,10 +132,10 @@ func (this *SysLog_) goSaveToFile() {
|
||||
this.botNode = nil
|
||||
this.msgMutex.Unlock()
|
||||
if workNode != nil {
|
||||
logDir := fmt.Sprintf(SYS_LOG_ROOT, GetApp().GetPkgName())
|
||||
logDir := this.GetLogDir()
|
||||
fileName := fmt.Sprintf(TGLOG_FILENAME, os.Getpid(), time.Now().Format("20060102"))
|
||||
q5.ForceCreateDir(logDir)
|
||||
if f, err := os.OpenFile(logDir + fileName, os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0666); err == nil {
|
||||
if f, err := os.OpenFile(logDir+fileName, os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0666); err == nil {
|
||||
for workNode != nil {
|
||||
f.Write([]byte(workNode.logMsg))
|
||||
workNode = workNode.next
|
||||
@ -143,3 +147,12 @@ func (this *SysLog_) goSaveToFile() {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (this *SysLog_) GetLogDir() string {
|
||||
pkgName := GetApp().GetPkgName()
|
||||
var logDir string = fmt.Sprintf(SYS_LOG_ROOT_LINUX, pkgName)
|
||||
if runtime.GOOS == "windows" {
|
||||
logDir = fmt.Sprintf(SYS_LOG_ROOT_WINDOWS, pkgName)
|
||||
}
|
||||
return logDir
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user