[logger] 支持从配置中读取日志等级
This commit is contained in:
parent
3b105251bb
commit
e3093c1b73
|
|
@ -56,22 +56,6 @@ var StartCmd = &cobra.Command{
|
|||
}
|
||||
}
|
||||
|
||||
logger.Log.Info("进程列表:")
|
||||
for i, p := range procs {
|
||||
if i >= 10 {
|
||||
logger.Log.Info("... (仅显示前10个进程)")
|
||||
break
|
||||
}
|
||||
logger.Log.Info(
|
||||
"进程信息",
|
||||
zap.Int32("pid", p.PID),
|
||||
zap.String("name", p.Name),
|
||||
zap.String("path", p.Path),
|
||||
zap.String("cmdline", p.Cmdline),
|
||||
zap.Stringer("data", p),
|
||||
)
|
||||
}
|
||||
|
||||
// ====== 文件扫描和存储 ======
|
||||
logger.Log.Info("正在扫描文件系统...")
|
||||
|
||||
|
|
|
|||
|
|
@ -2,6 +2,10 @@ server:
|
|||
host: "127.0.0.1"
|
||||
port: 8080
|
||||
|
||||
log:
|
||||
level: "info"
|
||||
# level: "debug"
|
||||
|
||||
audit:
|
||||
enabled: true
|
||||
server: "192.168.1.100"
|
||||
|
|
|
|||
|
|
@ -1,11 +1,16 @@
|
|||
package config
|
||||
|
||||
type Config struct {
|
||||
Log LogConfig `yaml:"log"`
|
||||
Audit AuditConfig `yaml:"audit"`
|
||||
Scanner ScannerConfig `yaml:"scanner"`
|
||||
Storage StorageConfig `yaml:"storage"`
|
||||
}
|
||||
|
||||
type LogConfig struct {
|
||||
Level string `yaml:"level"`
|
||||
}
|
||||
|
||||
type AuditConfig struct {
|
||||
Enabled bool `yaml:"enabled"`
|
||||
Server string `yaml:"server"`
|
||||
|
|
|
|||
9
main.go
9
main.go
|
|
@ -4,6 +4,7 @@ import (
|
|||
"os"
|
||||
"sysmonitord/cmd/start"
|
||||
"sysmonitord/cmd/version"
|
||||
"sysmonitord/internal/config"
|
||||
"sysmonitord/pkg/logger"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
|
|
@ -14,6 +15,14 @@ func main() {
|
|||
logger.InitLogger()
|
||||
defer logger.Sync()
|
||||
|
||||
cfg, err := config.LoadConfig("./config.yaml")
|
||||
if err != nil {
|
||||
logger.Log.Error("加载配置文件失败", zap.Error(err))
|
||||
os.Exit(1)
|
||||
} else {
|
||||
logger.SetLogLevel(cfg.Log.Level)
|
||||
}
|
||||
|
||||
var rootCmd = &cobra.Command{
|
||||
Use: "sysmonitord",
|
||||
Short: "Sysmonitord 是一个 Linux 系统安全监控工具",
|
||||
|
|
|
|||
|
|
@ -7,9 +7,14 @@ import (
|
|||
"go.uber.org/zap/zapcore"
|
||||
)
|
||||
|
||||
var Log *zap.Logger
|
||||
var (
|
||||
Log *zap.Logger
|
||||
atom zap.AtomicLevel
|
||||
)
|
||||
|
||||
func InitLogger() {
|
||||
atom = zap.NewAtomicLevelAt(zapcore.InfoLevel)
|
||||
|
||||
encoderConfig := zapcore.EncoderConfig{
|
||||
TimeKey: "time",
|
||||
LevelKey: "level",
|
||||
|
|
@ -18,22 +23,35 @@ func InitLogger() {
|
|||
MessageKey: "msg",
|
||||
StacktraceKey: "stacktrace",
|
||||
LineEnding: zapcore.DefaultLineEnding,
|
||||
EncodeLevel: zapcore.LowercaseLevelEncoder,
|
||||
EncodeLevel: zapcore.LowercaseColorLevelEncoder,
|
||||
EncodeTime: zapcore.ISO8601TimeEncoder,
|
||||
EncodeDuration: zapcore.StringDurationEncoder,
|
||||
EncodeCaller: zapcore.ShortCallerEncoder,
|
||||
}
|
||||
|
||||
// Debug
|
||||
consoleEncoder := zapcore.NewConsoleEncoder(encoderConfig)
|
||||
|
||||
core := zapcore.NewTee(
|
||||
zapcore.NewCore(consoleEncoder, zapcore.AddSync(os.Stdout), zap.DebugLevel),
|
||||
zapcore.NewCore(consoleEncoder, zapcore.AddSync(os.Stdout), atom),
|
||||
)
|
||||
|
||||
Log = zap.New(core, zap.AddCaller())
|
||||
}
|
||||
|
||||
func SetLogLevel(levelStr string) {
|
||||
if atom == (zap.AtomicLevel{}) {
|
||||
return
|
||||
}
|
||||
|
||||
var level zapcore.Level
|
||||
if err := level.UnmarshalText([]byte(levelStr)); err != nil {
|
||||
Log.Warn("无效的日志级别,使用默认级别 info", zap.String("输入级别", levelStr))
|
||||
atom.SetLevel(zapcore.InfoLevel)
|
||||
} else {
|
||||
atom.SetLevel(level)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func Sync() {
|
||||
if Log != nil {
|
||||
_ = Log.Sync()
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user