新增异步日志功能

This commit is contained in:
duanhf2012
2023-08-17 14:00:36 +08:00
parent ef8182eec7
commit 75f881be28
19 changed files with 448 additions and 466 deletions

View File

@@ -19,7 +19,6 @@ import (
"strings"
"syscall"
"time"
"log/slog"
)
var sig chan os.Signal
@@ -28,8 +27,8 @@ var preSetupService []service.IService //预安装
var profilerInterval time.Duration
var bValid bool
var configDir = "./config/"
var logLevel slog.Level = log.LevelTrace
var logPath string
type BuildOSType = int8
const(
@@ -51,6 +50,7 @@ func init() {
console.RegisterCommandString("loglevel", "debug", "<-loglevel debug|release|warning|error|fatal> Set loglevel.", setLevel)
console.RegisterCommandString("logpath", "", "<-logpath path> Set log file path.", setLogPath)
console.RegisterCommandInt("logsize", 0, "<-logsize size> Set log size(MB).", setLogSize)
console.RegisterCommandInt("logchannelcap", 0, "<-logchannelcap num> Set log channel cap.", setLogChannelCapNum)
console.RegisterCommandString("pprof", "", "<-pprof ip:port> Open performance analysis.", setPprof)
}
@@ -178,13 +178,13 @@ func initNode(id int) {
}
func initLog() error {
if logPath == "" {
if log.LogPath == "" {
setLogPath("./log")
}
localnodeinfo := cluster.GetCluster().GetLocalNodeInfo()
filepre := fmt.Sprintf("%s_%d_", localnodeinfo.NodeName, localnodeinfo.NodeId)
logger, err := log.NewTextLogger(logLevel,logPath,filepre,true)
logger, err := log.NewTextLogger(log.LogLevel,log.LogPath,filepre,true,log.LogChannelCap)
if err != nil {
fmt.Printf("cannot create log file!\n")
return err
@@ -282,6 +282,7 @@ func startNode(args interface{}) error {
service.StopAllService()
log.Info("Server is stop.")
log.Close()
return nil
}
@@ -305,7 +306,6 @@ func GetConfigDir() string {
return configDir
}
func OpenProfilerReport(interval time.Duration) {
profilerInterval = interval
}
@@ -333,19 +333,19 @@ func setLevel(args interface{}) error {
strlogLevel := strings.TrimSpace(args.(string))
switch strlogLevel {
case "trace":
logLevel = log.LevelTrace
log.LogLevel = log.LevelTrace
case "debug":
logLevel = log.LevelDebug
log.LogLevel = log.LevelDebug
case "info":
logLevel = log.LevelInfo
log.LogLevel = log.LevelInfo
case "warning":
logLevel = log.LevelWarning
log.LogLevel = log.LevelWarning
case "error":
logLevel = log.LevelError
log.LogLevel = log.LevelError
case "stack":
logLevel = log.LevelStack
log.LogLevel = log.LevelStack
case "fatal":
logLevel = log.LevelFatal
log.LogLevel = log.LevelFatal
default:
return errors.New("unknown level: " + strlogLevel)
}
@@ -356,16 +356,17 @@ func setLogPath(args interface{}) error {
if args == "" {
return nil
}
logPath = strings.TrimSpace(args.(string))
dir, err := os.Stat(logPath) //这个文件夹不存在
log.LogPath = strings.TrimSpace(args.(string))
dir, err := os.Stat(log.LogPath) //这个文件夹不存在
if err == nil && dir.IsDir() == false {
return errors.New("Not found dir " + logPath)
return errors.New("Not found dir " + log.LogPath)
}
if err != nil {
err = os.Mkdir(logPath, os.ModePerm)
err = os.Mkdir(log.LogPath, os.ModePerm)
if err != nil {
return errors.New("Cannot create dir " + logPath)
return errors.New("Cannot create dir " + log.LogPath)
}
}
@@ -376,6 +377,7 @@ func setLogSize(args interface{}) error {
if args == "" {
return nil
}
logSize,ok := args.(int)
if ok == false{
return errors.New("param logsize is error")
@@ -385,3 +387,17 @@ func setLogSize(args interface{}) error {
return nil
}
func setLogChannelCapNum(args interface{}) error {
if args == "" {
return nil
}
logChannelCap,ok := args.(int)
if ok == false{
return errors.New("param logsize is error")
}
log.LogChannelCap = logChannelCap
return nil
}