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  }