github.com/ChainSafe/chainbridge-core@v1.4.2/chains/evm/cli/logger/logger.go (about) 1 package logger 2 3 import ( 4 "fmt" 5 "os" 6 "time" 7 8 "github.com/ChainSafe/chainbridge-core/logger" 9 "github.com/rs/zerolog" 10 "github.com/rs/zerolog/log" 11 "github.com/spf13/pflag" 12 ) 13 14 var ( 15 CliLogsFilename = "cli_output_data.log" 16 Now = time.Now 17 ) 18 19 func LoggerMetadata(cmdName string, flagSet *pflag.FlagSet) { 20 21 currentTimestamp := Now().Format("02-01|15:00:00.000 ") 22 23 file, err := os.OpenFile(CliLogsFilename, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) 24 if err != nil { 25 log.Error().Err(fmt.Errorf("failed to create cli log file: %v", err)) 26 } 27 28 var cmdFlagsWithArgs string 29 flagSet.VisitAll(func(flag *pflag.Flag) { 30 if flag.Name != "privateKey" { 31 cmdFlagsWithArgs += fmt.Sprintf("--%s=%q ", flag.Name, flag.Value) 32 } 33 }) 34 35 _, err = file.WriteString( 36 currentTimestamp + 37 fmt.Sprintf("Called %s with args: %s=>\n", cmdName, cmdFlagsWithArgs)) 38 39 if err != nil { 40 log.Error().Err(fmt.Errorf("failed to write to log file: %v", err)) 41 } 42 43 // PartsExclude - omit log level and execution time from final log 44 logConsoleWriter := zerolog.ConsoleWriter{Out: os.Stdout, PartsExclude: []string{"level", "time"}} 45 logFileWriter := zerolog.ConsoleWriter{Out: file, PartsExclude: []string{"level", "time"}} 46 logger.ConfigureLogger(zerolog.DebugLevel, logConsoleWriter, logFileWriter) 47 }