Documentation ¶
Overview ¶
Package logger used to get a logger for modules to write log
Index ¶
- Constants
- func RefreshLogConfig(config *LogConfig)
- func SetLogConfig(config *LogConfig)
- type CMLogger
- func (l *CMLogger) Close()
- func (l *CMLogger) Debug(args ...interface{})
- func (l *CMLogger) DebugDynamic(getStr func() string)
- func (l *CMLogger) Debugf(format string, args ...interface{})
- func (l *CMLogger) Debugw(msg string, keysAndValues ...interface{})
- func (l *CMLogger) Error(args ...interface{})
- func (l *CMLogger) Errorf(format string, args ...interface{})
- func (l *CMLogger) Errorw(msg string, keysAndValues ...interface{})
- func (l *CMLogger) Fatal(args ...interface{})
- func (l *CMLogger) Fatalf(format string, args ...interface{})
- func (l *CMLogger) Fatalw(msg string, keysAndValues ...interface{})
- func (l *CMLogger) Info(args ...interface{})
- func (l *CMLogger) InfoDynamic(getStr func() string)
- func (l *CMLogger) Infof(format string, args ...interface{})
- func (l *CMLogger) Infow(msg string, keysAndValues ...interface{})
- func (l *CMLogger) Logger() *zap.SugaredLogger
- func (l *CMLogger) Panic(args ...interface{})
- func (l *CMLogger) Panicf(format string, args ...interface{})
- func (l *CMLogger) Panicw(msg string, keysAndValues ...interface{})
- func (l *CMLogger) SetLogger(logger *zap.SugaredLogger)
- func (l *CMLogger) Warn(args ...interface{})
- func (l *CMLogger) Warnf(format string, args ...interface{})
- func (l *CMLogger) Warnw(msg string, keysAndValues ...interface{})
- type KafkaLogConfig
- type KafkaLogger
- type KafkaSaslConfig
- type LogConfig
- type LogNodeConfig
Constants ¶
const ( MODULE_BLOCKCHAIN = "[Blockchain]" MODULE_NET = "[Net]" MODULE_STORAGE = "[Storage]" MODULE_SNAPSHOT = "[Snapshot]" MODULE_CONSENSUS = "[Consensus]" MODULE_TXPOOL = "[TxPool]" MODULE_CORE = "[Core]" MODULE_VM = "[Vm]" MODULE_RPC = "[Rpc]" MODULE_LEDGER = "[Ledger]" //nolint:golint,unused MODULE_CLI = "[Cli]" MODULE_CHAINCONF = "[ChainConf]" MODULE_ACCESS = "[Access]" MODULE_MONITOR = "[Monitor]" MODULE_SYNC = "[Sync]" MODULE_DPOS = "[DPoS]" MODULE_TXFILTER = "[TxFilter]" MODULE_BRIEF = "[Brief]" MODULE_EVENT = "[Event]" DefaultStackTraceLevel = "ERROR" )
Log module
Variables ¶
This section is empty.
Functions ¶
Types ¶
type CMLogger ¶
type CMLogger struct {
// contains filtered or unexported fields
}
CMLogger is an implementation of chainmaker logger.
func GetLogger ¶
GetLogger find or create a CMLogger with module name, usually called in initialization of all module. After one module get the logger, the module can use it forever until the program terminate.
func GetLoggerByChain ¶
GetLoggerByChain find the CMLogger object with module name and chainId, usually called in initialization of all module. One module can get a logger for each chain, then logger can be use forever until the program terminate.
func (*CMLogger) DebugDynamic ¶
DebugDynamic 动态Debug级日志,只有需要日志输出时才会运行匿名函数的内容,产生日志结果 @param getStr
func (*CMLogger) Debugf ¶
Debugf Debug级日志,支持format @param format @param args
func (*CMLogger) Debugw ¶
Debugw Debug级日志,支持kv对 @param msg @param keysAndValues
func (*CMLogger) Errorf ¶
Errorf Error级日志,支持format @param format @param args
func (*CMLogger) Errorw ¶
Errorw Error级日志,支持kv对 @param msg @param keysAndValues
func (*CMLogger) Fatalf ¶
Fatalf 失败日志,带Format @param format @param args
func (*CMLogger) Fatalw ¶
Fatalw 失败日志,支持KV @param msg @param keysAndValues
func (*CMLogger) InfoDynamic ¶
InfoDynamic 动态Info级日志,只有需要日志输出时才会运行匿名函数的内容,产生日志结果 @param getStr
func (*CMLogger) Infof ¶
Infof Info级日志,支持Format @param format @param args
func (*CMLogger) Infow ¶
Infow Info级日志,支持kv对 @param msg @param keysAndValues
func (*CMLogger) Logger ¶
func (l *CMLogger) Logger() *zap.SugaredLogger
Logger 获得CMLogger内部的zap Logger @return *zap.SugaredLogger
func (*CMLogger) Panic ¶
func (l *CMLogger) Panic(args ...interface{})
Panic 记录日志并抛出Panic @param args
func (*CMLogger) Panicf ¶
Panicf 记录日志并抛出Panic,日志支持format @param format @param args
func (*CMLogger) Panicw ¶
Panicw 记录日志并抛出Panic,日志支持kv对 @param msg @param keysAndValues
func (*CMLogger) SetLogger ¶
func (l *CMLogger) SetLogger(logger *zap.SugaredLogger)
SetLogger set logger.
func (*CMLogger) Warnf ¶
Warnf Warn级日志,支持format @param format @param args
type KafkaLogConfig ¶
type KafkaLogConfig struct { Servers []string `mapstructure:"servers"` // 0: None, 1: Gzip Compression int `mapstructure:"compression"` //默认的Kafka Topic Topic string `mapstructure:"topic"` // key: chainId value: topic TopicMapping map[string]string `mapstructure:"topic_mapping"` KafkaVersion string `mapstructure:"kafka_version"` Sasl *KafkaSaslConfig `mapstructure:"sasl"` }
KafkaLogConfig Kafka记录日志时的配置
func (*KafkaLogConfig) GetTopic ¶
func (c *KafkaLogConfig) GetTopic(chainId string) string
GetTopic 根据链ID,获得配置的Kafka的主题 @param chainId @return string
type KafkaLogger ¶
type KafkaLogger struct { Producer sarama.SyncProducer Topic string }
KafkaLogger 基于Kafka的Logger记录器
func NewKafkaProducer ¶
func NewKafkaProducer(logConfig *KafkaLogConfig, chainId string) (*KafkaLogger, error)
NewKafkaProducer 基于配置,初始化一个新的Kafka生产者 @param logConfig @param chainId @return *KafkaLogger @return error
func (*KafkaLogger) Write ¶
func (lk *KafkaLogger) Write(p []byte) (n int, err error)
Write 写入日志到Kafka @param p @return n @return err
type KafkaSaslConfig ¶
type KafkaSaslConfig struct { Enable bool `mapstructure:"enable"` UserName string `mapstructure:"username"` Password string `mapstructure:"password"` // 默认是PLAIN Mechanism string `mapstructure:"mechanism"` Version int `mapstructure:"version"` }
KafkaSaslConfig Kafka需要安全认证时的配置
type LogConfig ¶
type LogConfig struct { ConfigFile string `mapstructure:"config_file"` SystemLog LogNodeConfig `mapstructure:"system"` //整个区块链系统的日志配置 BriefLog *LogNodeConfig `mapstructure:"brief"` //简短日志配置,用于rpcserver,审计用 EventLog *LogNodeConfig `mapstructure:"event"` //事件日志配置 ModuleLog map[string]LogNodeConfig `mapstructure:"module"` //每个模块的日志配置 }
LogConfig the config of log module
func DefaultLogConfig ¶
func DefaultLogConfig() *LogConfig
DefaultLogConfig create default config for log module
func (*LogConfig) GetBriefConfig ¶
func (c *LogConfig) GetBriefConfig() LogNodeConfig
GetBriefConfig 获得BriefLog配置,如果没有配,那么就采用SystemLog @return LogNodeConfig
func (*LogConfig) GetConfigByModuleName ¶
func (c *LogConfig) GetConfigByModuleName(pureName string) LogNodeConfig
GetConfigByModuleName 获得某个模块的Log配置 @param pureName @return LogNodeConfig
func (*LogConfig) GetEventConfig ¶
func (c *LogConfig) GetEventConfig() LogNodeConfig
GetEventConfig 获得EventLog配置,如果没有配,那么就采用SystemLog @return LogNodeConfig
type LogNodeConfig ¶
type LogNodeConfig struct { LogLevelDefault string `mapstructure:"log_level_default"` //默认日志级别 LogLevels map[string]string `mapstructure:"log_levels"` //指定模块的日志级别 FilePath string `mapstructure:"file_path"` //日志路径 MaxAge int `mapstructure:"max_age"` //日志最长保存时间,单位:天 RotationTime int `mapstructure:"rotation_time"` //日志滚动时间,单位:小时 RotationSize int64 `mapstructure:"rotation_size"` //日志滚动大小,单位:MB LogInConsole bool `mapstructure:"log_in_console"` //是否向控制台输出日志 LogByChain bool `mapstructure:"log_by_chain"` //不同的链ID,存储在不同的日志文件夹中 JsonFormat bool `mapstructure:"json_format"` //是否以JSON格式输出日志 ShowColor bool `mapstructure:"show_color"` //是否打印颜色日志 StackTraceLevel string `mapstructure:"stack_trace_level"` //哪种日志级别时打印调用堆栈 Kafka *KafkaLogConfig `mapstructure:"kafka"` //向Kafka输出日志的配置 }
LogNodeConfig the log config of node
func GetDefaultLogNodeConfig ¶
func GetDefaultLogNodeConfig() LogNodeConfig
GetDefaultLogNodeConfig create a default log config of node
func (LogNodeConfig) GetFilePath ¶
func (cfg LogNodeConfig) GetFilePath(chainId string) string
GetFilePath calculate log file path by chainId and config @param chainId @return string new file path