From 28e2d3ea05614a70fd8bc3d853b8a3ece3ca03d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=AE=B7=E5=8B=87?= Date: Mon, 28 Aug 2023 13:12:45 +0800 Subject: [PATCH] =?UTF-8?q?syslog=E6=97=A5=E5=BF=97=E8=B7=AF=E5=BE=84=20?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0windows=E7=9B=AE=E5=BD=95=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- syslog.go | 51 ++++++++++++++++++++++++++++++++------------------- 1 file changed, 32 insertions(+), 19 deletions(-) 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 +}