mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-12 09:23:09 -06:00
Better handling of prefix field
This commit is contained in:
parent
51d1ad692c
commit
624c12b959
|
|
@ -29,7 +29,9 @@ type dendriteFormatter struct {
|
|||
logrus.TextFormatter
|
||||
}
|
||||
|
||||
func (f dendriteFormatter) Format(entry *logrus.Entry) ([]byte, error) {
|
||||
func (f dendriteFormatter) Format(entry *logrus.Entry) (format []byte, err error) {
|
||||
entry.Time = entry.Time.UTC()
|
||||
|
||||
if _, ok := entry.Data["prefix"]; ok {
|
||||
prefix, ok := entry.Data["prefix"].(string)
|
||||
if !ok {
|
||||
|
|
@ -42,12 +44,27 @@ func (f dendriteFormatter) Format(entry *logrus.Entry) ([]byte, error) {
|
|||
prefix = ansi.Color(prefix, "white+b")
|
||||
}
|
||||
|
||||
entry.Message = fmt.Sprintf("%s: %s", prefix, entry.Message)
|
||||
delete(entry.Data, "prefix")
|
||||
entry.Message = fmt.Sprintf("%s: %s\t", prefix, entry.Message)
|
||||
|
||||
// Generate the formatted log without the prefix as a field
|
||||
// Use a copy of the entry so the same entry isn't altered by multiple
|
||||
// fields at the same time
|
||||
entryCpy := *entry
|
||||
// Go doesn't perform deep copies, so the fields have to be manually
|
||||
// copied
|
||||
fields := make(logrus.Fields)
|
||||
for k, v := range entry.Data {
|
||||
if k != "prefix" {
|
||||
fields[k] = v
|
||||
}
|
||||
}
|
||||
entryCpy.Data = fields
|
||||
format, err = f.TextFormatter.Format(&entryCpy)
|
||||
} else {
|
||||
format, err = f.TextFormatter.Format(entry)
|
||||
}
|
||||
|
||||
entry.Time = entry.Time.UTC()
|
||||
return f.TextFormatter.Format(entry)
|
||||
return
|
||||
}
|
||||
|
||||
// SetupLogging configures the logging format and destination(s).
|
||||
|
|
|
|||
Loading…
Reference in a new issue