chore(message): Add option to redact contents of messages in logs (#719)

This commit is contained in:
Ethan Nguyen 2023-02-20 21:00:24 -06:00 committed by GitHub
parent 131e8a156b
commit a35fc9fbd2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 42 additions and 25 deletions

View File

@ -179,6 +179,7 @@ log:
error_log: "stderr" # stderr: output to console, or define log path like "log/error_log"
error_level: "error"
hide_token: true
hide_messages: false
stat:
engine: "memory" # support memory, redis, boltdb, buntdb or leveldb

View File

@ -10,7 +10,7 @@ import (
"github.com/spf13/viper"
)
//nolint
// nolint
var defaultConf = []byte(`
core:
enabled: true # enable httpd server
@ -98,6 +98,7 @@ log:
error_log: "stderr" # stderr: output to console, or define log path like "log/error_log"
error_level: "error"
hide_token: true
hide_messages: false
stat:
engine: "memory" # support memory, redis, boltdb, buntdb or leveldb
@ -208,6 +209,7 @@ type SectionLog struct {
ErrorLog string `yaml:"error_log"`
ErrorLevel string `yaml:"error_level"`
HideToken bool `yaml:"hide_token"`
HideMessages bool `yaml:"hide_messages"`
}
// SectionStat is sub section of config.
@ -397,6 +399,7 @@ func LoadConf(confPath ...string) (*ConfYaml, error) {
conf.Log.ErrorLog = viper.GetString("log.error_log")
conf.Log.ErrorLevel = viper.GetString("log.error_level")
conf.Log.HideToken = viper.GetBool("log.hide_token")
conf.Log.HideMessages = viper.GetBool("log.hide_messages")
// Queue Engine
conf.Queue.Engine = viper.GetString("queue.engine")

View File

@ -119,6 +119,7 @@ func (suite *ConfigTestSuite) TestValidateConfDefault() {
assert.Equal(suite.T(), "stderr", suite.ConfGorushDefault.Log.ErrorLog)
assert.Equal(suite.T(), "error", suite.ConfGorushDefault.Log.ErrorLevel)
assert.Equal(suite.T(), true, suite.ConfGorushDefault.Log.HideToken)
assert.Equal(suite.T(), false, suite.ConfGorushDefault.Log.HideMessages)
assert.Equal(suite.T(), "memory", suite.ConfGorushDefault.Stat.Engine)
assert.Equal(suite.T(), false, suite.ConfGorushDefault.Stat.Redis.Cluster)

View File

@ -84,6 +84,7 @@ log:
error_log: "stderr" # stderr: output to console, or define log path like "log/error_log"
error_level: "error"
hide_token: true
hide_messages: false
stat:
engine: "memory" # support memory, redis, boltdb, buntdb or leveldb

View File

@ -33,7 +33,7 @@ type LogPushEntry struct {
var isTerm bool
//nolint
// nolint
func init() {
isTerm = isatty.IsTerminal(os.Stdout.Fd())
}
@ -175,12 +175,17 @@ func GetLogPushEntry(input *InputLog) LogPushEntry {
token = hideToken(input.Token, 10)
}
message := input.Message
if input.HideMessage {
message = "(message redacted)"
}
return LogPushEntry{
ID: input.ID,
Type: input.Status,
Platform: plat,
Token: token,
Message: input.Message,
Message: message,
Error: errMsg,
}
}
@ -194,6 +199,7 @@ type InputLog struct {
Platform int
Error error
HideToken bool
HideMessage bool
Format string
}

View File

@ -154,6 +154,10 @@ func TestLogPushEntry(t *testing.T) {
in.Token = "1234567890"
in.HideToken = true
assert.Equal(t, "**********", GetLogPushEntry(&in).Token)
in.Message = "hellothisisamessage"
in.HideMessage = true
assert.Equal(t, "(message redacted)", GetLogPushEntry(&in).Message)
}
func TestLogPush(t *testing.T) {

View File

@ -241,6 +241,7 @@ func logPush(cfg *config.ConfYaml, status, token string, req *PushNotification,
Platform: req.Platform,
Error: err,
HideToken: cfg.Log.HideToken,
HideMessage: cfg.Log.HideMessages,
Format: cfg.Log.Format,
})
}