From 9bd7c5c96245bdb6b32099b6ee3ca32fc9ae568e Mon Sep 17 00:00:00 2001 From: JungJun Date: Tue, 19 Jul 2022 17:16:58 +0900 Subject: [PATCH] =?UTF-8?q?log=20rotete=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- icssvc/icssvc.go | 59 +++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 51 insertions(+), 8 deletions(-) diff --git a/icssvc/icssvc.go b/icssvc/icssvc.go index 52b4929..fd53a57 100644 --- a/icssvc/icssvc.go +++ b/icssvc/icssvc.go @@ -4,6 +4,7 @@ import ( "fmt" "math" "os" + "path/filepath" "sync" "time" @@ -203,17 +204,59 @@ func (s IcsService) LogWatcher() *icserror.IcsError { // /logs/voiceGW/tlo/{YYYYMMDD}/LGT.001.202207140313.log // s.log.Path: /logs/voiceGW/tlo 로 변경 // 일자별 rotate를 날짜 폴더로 이동 + s.log.LogFileName = fmt.Sprintf("%s/%d%02d%02d/LGT.%03d.%d%02d%02d%02d%02d.log", s.log.Path, y2, m2, d2, s.config.InfoConfig.ServerID, y2, m2, d2, h2, mi2) - var oerr error - s.log.LogFile, oerr = os.OpenFile(s.log.LogFileName, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0777) - if oerr != nil { - icserror.ICSERRFileOpen.SetError(oerr) - //icserror.ICSERRFileOpen.PrintWithCaller(1) - - s.log.M.Unlock() - return icserror.ICSERRFileOpen + + _, err := os.Stat(s.log.LogFileName) + if err == nil { + var oerr error + oerr = os.MkdirAll(filepath.Dir(s.log.LogFileName), 0777) + if oerr != nil { + icserror.ICSERRMakeDir.SetError(oerr) + icserror.ICSERRMakeDir.PrintWithCaller(0) + return icserror.ICSERRMakeDir + } + + s.log.LogFile, oerr = os.OpenFile(s.log.LogFileName, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0777) + if oerr != nil { + icserror.ICSERRFileOpen.SetError(oerr) + //icserror.ICSERRFileOpen.PrintWithCaller(1) + + s.log.M.Unlock() + return icserror.ICSERRFileOpen + } + } else { + var oerr error + oerr = os.MkdirAll(filepath.Dir(s.log.LogFileName), 0777) + if oerr != nil { + fmt.Println("mkdir err : ", oerr) + icserror.ICSERRMakeDir.SetError(oerr) + icserror.ICSERRMakeDir.PrintWithCaller(0) + return icserror.ICSERRMakeDir + } + fmt.Println("mkdir success") + + s.log.LogFile, oerr = os.OpenFile(s.log.LogFileName, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0777) + if oerr != nil { + icserror.ICSERRFileOpen.SetError(oerr) + //icserror.ICSERRFileOpen.PrintWithCaller(1) + + s.log.M.Unlock() + return icserror.ICSERRFileOpen + } } + // s.log.LogFileName = fmt.Sprintf("%s/%d%02d%02d/LGT.%03d.%d%02d%02d%02d%02d.log", s.log.Path, y2, m2, d2, s.config.InfoConfig.ServerID, y2, m2, d2, h2, mi2) + // var oerr error + // s.log.LogFile, oerr = os.OpenFile(s.log.LogFileName, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0777) + // if oerr != nil { + // icserror.ICSERRFileOpen.SetError(oerr) + // //icserror.ICSERRFileOpen.PrintWithCaller(1) + + // s.log.M.Unlock() + // return icserror.ICSERRFileOpen + // } + s.log.M.Unlock() // l.Printf(icslog.LOG_LEVEL_INFO, -1, "Log Watcher: Updated Log File - %s", s.log.LogFileName) }