diff --git a/syslog.go b/syslog.go index eb7fd73..baa5f77 100644 --- a/syslog.go +++ b/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 +}