diff --git a/log/log.go b/log/log.go index 53d96fc..b289782 100644 --- a/log/log.go +++ b/log/log.go @@ -26,9 +26,12 @@ const ( ) type Logger struct { + filePath string + logTime time.Time level int baseLogger *log.Logger baseFile *os.File + flag int } func New(strLevel string, pathname string, flag int) (*Logger, error) { @@ -50,9 +53,8 @@ func New(strLevel string, pathname string, flag int) (*Logger, error) { // logger var baseLogger *log.Logger var baseFile *os.File + now := time.Now() if pathname != "" { - now := time.Now() - filename := fmt.Sprintf("%d%02d%02d_%02d_%02d_%02d.log", now.Year(), now.Month(), @@ -77,6 +79,9 @@ func New(strLevel string, pathname string, flag int) (*Logger, error) { logger.level = level logger.baseLogger = baseLogger logger.baseFile = baseFile + logger.logTime = now + logger.filePath = pathname + logger.flag = flag return logger, nil } @@ -99,6 +104,27 @@ func (logger *Logger) doPrintf(level int, printLevel string, format string, a .. panic("logger closed") } + if logger.baseFile != nil { + now := time.Now() + if now.Day() != logger.logTime.Day() { + filename := fmt.Sprintf("%d%02d%02d_%02d_%02d_%02d.log", + now.Year(), + now.Month(), + now.Day(), + now.Hour(), + now.Minute(), + now.Second()) + + file, err := os.Create(path.Join(logger.filePath, filename)) + if err == nil { + logger.baseFile.Close() + logger.baseLogger = log.New(file, "", logger.flag) + logger.baseFile = file + logger.logTime = now + } + } + } + format = printLevel + format logger.baseLogger.Output(3, fmt.Sprintf(format, a...)) diff --git a/rpc/rpchandler.go b/rpc/rpchandler.go index 8a221ad..dac257b 100644 --- a/rpc/rpchandler.go +++ b/rpc/rpchandler.go @@ -362,6 +362,9 @@ func (slf *RpcHandler) callRpc(nodeId int,serviceMethod string,args interface{}, //跨node调用 pCall := pClient.Go(false,serviceMethod,args,reply) + if pCall.Err != nil { + return pCall.Err + } pResult := pCall.Done() return pResult.Err }