fix(logger): Move extrafields from gelf to global system
Some checks failed
continuous-integration/drone/push Build is failing
Some checks failed
continuous-integration/drone/push Build is failing
This commit is contained in:
parent
44ff19e779
commit
8aedb85605
@ -8,10 +8,10 @@ import (
|
|||||||
|
|
||||||
const LoggerKey = "mainLogger"
|
const LoggerKey = "mainLogger"
|
||||||
|
|
||||||
func AddMainLogger(ctx context.Context, logger *logrus.Logger) context.Context {
|
func AddMainLogger(ctx context.Context, logger *logrus.Entry) context.Context {
|
||||||
return context.WithValue(ctx, LoggerKey, logger)
|
return context.WithValue(ctx, LoggerKey, logger)
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetLogger(ctx context.Context) *logrus.Logger {
|
func GetLogger(ctx context.Context) *logrus.Entry {
|
||||||
return ctx.Value(LoggerKey).(*logrus.Logger)
|
return ctx.Value(LoggerKey).(*logrus.Entry)
|
||||||
}
|
}
|
||||||
|
@ -26,11 +26,12 @@ const defaultSecretName = "log"
|
|||||||
|
|
||||||
// ConfigStruct represent the configuration of our logger system.
|
// ConfigStruct represent the configuration of our logger system.
|
||||||
type ConfigStruct struct {
|
type ConfigStruct struct {
|
||||||
Level *string `yaml:"level"`
|
|
||||||
EnableStdOut *bool `yaml:"ensable_std_out"`
|
EnableStdOut *bool `yaml:"ensable_std_out"`
|
||||||
Providers []ProviderName `yaml:"providers"`
|
ExtrasFields map[string]interface{} `yaml:"extra_fields"`
|
||||||
FileConfig *file.ConfigStruct `yaml:"file_config"`
|
FileConfig *file.ConfigStruct `yaml:"file_config"`
|
||||||
GelfConfig *gelf.ConfigStruct `yaml:"gelf_config"`
|
GelfConfig *gelf.ConfigStruct `yaml:"gelf_config"`
|
||||||
|
Level *string `yaml:"level"`
|
||||||
|
Providers []ProviderName `yaml:"providers"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func newDefaultConfig() *ConfigStruct {
|
func newDefaultConfig() *ConfigStruct {
|
||||||
@ -111,6 +112,18 @@ func (c *ConfigStruct) applyEnv() error {
|
|||||||
c.Providers = providers
|
c.Providers = providers
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Extra Fields
|
||||||
|
if v := os.Getenv(fmt.Sprintf("%s%s", envPrefix, "EXTRA_FIELDS")); v != "" {
|
||||||
|
extraFieldsPart := strings.Split(v, ",")
|
||||||
|
for _, efp := range extraFieldsPart {
|
||||||
|
extraFieldKV := strings.SplitN(efp, ":", 1)
|
||||||
|
if len(extraFieldKV) != 2 {
|
||||||
|
return errors.NotValidf(fmt.Sprintf("Invalid extra_field %s in environment variable. Should be a key1:value1,key2:value2 format", efp))
|
||||||
|
}
|
||||||
|
c.ExtrasFields[extraFieldKV[0]] = extraFieldKV[1]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
16
log/log.go
16
log/log.go
@ -12,7 +12,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
// Init will try to initialize logger by trying to retrieve config from multiple source.
|
// Init will try to initialize logger by trying to retrieve config from multiple source.
|
||||||
func Init() (*logrus.Logger, error) {
|
func Init() (*logrus.Entry, error) {
|
||||||
|
|
||||||
// loading configuration
|
// loading configuration
|
||||||
c, err := loadConfig()
|
c, err := loadConfig()
|
||||||
@ -24,7 +24,7 @@ func Init() (*logrus.Logger, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// InitFromCustomVaultSecret will initialize logger with a vault secret.
|
// InitFromCustomVaultSecret will initialize logger with a vault secret.
|
||||||
func InitFromCustomVaultSecret(secret string) (*logrus.Logger, error) {
|
func InitFromCustomVaultSecret(secret string) (*logrus.Entry, error) {
|
||||||
|
|
||||||
c, err := loadConfigFromVault(secret)
|
c, err := loadConfigFromVault(secret)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -35,7 +35,7 @@ func InitFromCustomVaultSecret(secret string) (*logrus.Logger, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// InitFromCustomFile will initialize logger with a config file.
|
// InitFromCustomFile will initialize logger with a config file.
|
||||||
func InitFromCustomFile(path string) (*logrus.Logger, error) {
|
func InitFromCustomFile(path string) (*logrus.Entry, error) {
|
||||||
|
|
||||||
c, err := loadConfigFromFile(path)
|
c, err := loadConfigFromFile(path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -45,7 +45,7 @@ func InitFromCustomFile(path string) (*logrus.Logger, error) {
|
|||||||
return initFromSource(c)
|
return initFromSource(c)
|
||||||
}
|
}
|
||||||
|
|
||||||
func initFromSource(c *ConfigStruct) (*logrus.Logger, error) {
|
func initFromSource(c *ConfigStruct) (*logrus.Entry, error) {
|
||||||
err := c.applyEnv()
|
err := c.applyEnv()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.Trace(err)
|
return nil, errors.Trace(err)
|
||||||
@ -57,7 +57,7 @@ func initFromSource(c *ConfigStruct) (*logrus.Logger, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// InitFromCustomConfig will initialize logger from a gaven config.
|
// InitFromCustomConfig will initialize logger from a gaven config.
|
||||||
func InitFromCustomConfig(c *ConfigStruct) (*logrus.Logger, error) {
|
func InitFromCustomConfig(c *ConfigStruct) (*logrus.Entry, error) {
|
||||||
|
|
||||||
err := c.IsValid()
|
err := c.IsValid()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -100,5 +100,9 @@ func InitFromCustomConfig(c *ConfigStruct) (*logrus.Logger, error) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return log, nil
|
return c.applyExtraFields(logrus.NewEntry(log)), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *ConfigStruct) applyExtraFields(l *logrus.Entry) *logrus.Entry {
|
||||||
|
return l.WithFields(c.ExtrasFields)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user