code: func initContextLogger(ctx context.Context) context.Context {
  	logger := newLoggerStruct()
  
  	output := sharedutils.EnvOrDefault("LOG_OUTPUT", "syslog")
  	if output == "syslog" {
  		syslogBackend, err := log.SyslogHandler(syslog.LOG_INFO, ProcessName, log.LogfmtFormat())
  		sharedutils.CheckError(err)
  		logger.SetHandler(syslogBackend)
  	} else {
  		stdoutBackend := log.StreamHandler(os.Stdout, log.LogfmtFormat())
  		logger.SetHandler(stdoutBackend)
  	}
  
  	logger.processPid = strconv.Itoa(os.Getpid())
  
  	ctx = context.WithValue(ctx, LoggerKey, logger)
  
  	level := sharedutils.EnvOrDefault("LOG_LEVEL", "")
  	if level != "" {
  		logger.logger.Info("Setting log level to " + level)
  		ctx = LoggerSetLevel(ctx, level)
  	}
  
  	return ctx
  }
docs: // Initialize the logger in a context