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) Filter(msg string)
- func (l *CMLogger) Filterf(format string, a ...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_EVM = "[Evm]" 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) Close ¶ added in v2.3.0
func (l *CMLogger) Close()
Close sync log and close handler
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) Filterf ¶ added in v2.3.4
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 ¶ added in v2.3.0
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 ¶ added in v2.3.0
func (c *KafkaLogConfig) GetTopic(chainId string) string
GetTopic 根据链ID,获得配置的Kafka的主题 @param chainId @return string
type KafkaLogger ¶ added in v2.3.0
type KafkaLogger struct { Producer sarama.SyncProducer Topic string }
KafkaLogger 基于Kafka的Logger记录器
func NewKafkaProducer ¶ added in v2.3.0
func NewKafkaProducer(logConfig *KafkaLogConfig, chainId string) (*KafkaLogger, error)
NewKafkaProducer 基于配置,初始化一个新的Kafka生产者 @param logConfig @param chainId @return *KafkaLogger @return error
func (*KafkaLogger) Write ¶ added in v2.3.0
func (lk *KafkaLogger) Write(p []byte) (n int, err error)
Write 写入日志到Kafka @param p @return n @return err
type KafkaSaslConfig ¶ added in v2.3.0
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"` 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) GetConfigByModuleName ¶ added in v2.3.0
func (c *LogConfig) GetConfigByModuleName(pureName string) LogNodeConfig
GetConfigByModuleName 获得某个模块的Log配置 @param pureName @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"` LogInConsole bool `mapstructure:"log_in_console"` LogByChain bool `mapstructure:"log_by_chain"` //不同的链ID,存储在不同的日志文件夹中 JsonFormat bool `mapstructure:"json_format"` ShowColor bool `mapstructure:"show_color"` StackTraceLevel string `mapstructure:"stack_trace_level"` Kafka *KafkaLogConfig `mapstructure:"kafka"` IsCompress bool `mapstructure:"is_compress"` //启用压缩 NoCompressCount int `mapstructure:"no_compress_count"` //最近n个文件不压缩 HmacKey string `mapstructure:"hmac_key"` //密钥 ArchivePath string `mapstructure:"archive_path"` //日志归档路径 SensitiveDataFiltering bool `mapstructure:"sensitive_data_filtering"` //启用敏感数据过滤 SensitiveDataEncryptionKey string `mapstructure:"sensitive_data_encryption_key"` //启用敏感数据加密(密钥) MultipleLogFiles bool `mapstructure:"multiple_log_files"` //多日志文件,true:不同级别日志写入不同文件夹 }
LogNodeConfig the log config of node
func GetDefaultLogNodeConfig ¶
func GetDefaultLogNodeConfig() LogNodeConfig
GetDefaultLogNodeConfig create a default log config of node
func (LogNodeConfig) GetFilePath ¶ added in v2.3.0
func (cfg LogNodeConfig) GetFilePath(chainId string) string
GetFilePath calculate log file path by chainId and config @param chainId @return string new file path