Skip to content

Commit

Permalink
Set up plain text logger
Browse files Browse the repository at this point in the history
  • Loading branch information
bonzofenix committed Sep 17, 2024
1 parent 4cc1a1d commit 89ced33
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 15 deletions.
6 changes: 3 additions & 3 deletions src/autoscaler/helpers/json_redacter_with_url_creds.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,13 +40,13 @@ func (r JSONRedacterWithURLCred) Redact(data []byte) []byte {
}
err := json.Unmarshal(data, &jsonBlob)
if err != nil {
return handleError(err)
return errorToBytes(err)
}
r.redactValue(&jsonBlob)

data, err = json.Marshal(jsonBlob)
if err != nil {
return handleError(err)
return errorToBytes(err)
}

return r.jsonRedacter.Redact(data)
Expand Down Expand Up @@ -82,7 +82,7 @@ func (r JSONRedacterWithURLCred) redactObject(data *map[string]interface{}) {
}
}

func handleError(err error) []byte {
func errorToBytes(err error) []byte {
var content []byte
var errType *json.UnsupportedTypeError
if errors.As(err, &errType) {
Expand Down
41 changes: 29 additions & 12 deletions src/autoscaler/helpers/logger.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package helpers

import (
"fmt"
"log/slog"
"os"

"code.cloudfoundry.org/lager/v3"
Expand All @@ -12,26 +13,23 @@ type LoggingConfig struct {
}

func InitLoggerFromConfig(conf *LoggingConfig, name string) lager.Logger {
logLevel, err := getLogLevel(conf.Level)
logLevel, err := parseLogLevel(conf.Level)
if err != nil {
fmt.Fprintf(os.Stderr, "failed to initialize logger: %s\n", err.Error())
os.Exit(1)
handleError("failed to initialize logger", err)
}
logger := lager.NewLogger(name)

keyPatterns := []string{"[Pp]wd", "[Pp]ass", "[Ss]ecret", "[Tt]oken"}
logger := lager.NewLogger(name)

redactedSink, err := NewRedactingWriterWithURLCredSink(os.Stdout, logLevel, keyPatterns, nil)
if err != nil {
fmt.Fprintf(os.Stderr, "Failed to create redacted sink: %s\n", err.Error())
os.Exit(1)
}
redactedSink := createRedactedSink(logLevel)
logger.RegisterSink(redactedSink)

plaintextFormatSink := createPlaintextSink()
logger.RegisterSink(plaintextFormatSink)

return logger
}

func getLogLevel(level string) (lager.LogLevel, error) {
func parseLogLevel(level string) (lager.LogLevel, error) {
switch level {
case "debug":
return lager.DEBUG, nil
Expand All @@ -42,6 +40,25 @@ func getLogLevel(level string) (lager.LogLevel, error) {
case "fatal":
return lager.FATAL, nil
default:
return -1, fmt.Errorf("Error: unsupported log level:%s", level)
return -1, fmt.Errorf("unsupported log level: %s", level)
}
}

func createPlaintextSink() lager.Sink {
slogger := slog.New(slog.NewTextHandler(os.Stdout, nil))
return lager.NewSlogSink(slogger)
}

func createRedactedSink(logLevel lager.LogLevel) lager.Sink {
keyPatterns := []string{"[Pp]wd", "[Pp]ass", "[Ss]ecret", "[Tt]oken"}
redactedSink, err := NewRedactingWriterWithURLCredSink(os.Stdout, logLevel, keyPatterns, nil)
if err != nil {
handleError("failed to create redacted sink", err)
}
return redactedSink
}

func handleError(message string, err error) {
fmt.Fprintf(os.Stderr, "%s: %s\n", message, err.Error())
os.Exit(1)
}

0 comments on commit 89ced33

Please sign in to comment.