code: func ReadConfig(filename string) (*Config, error) {
  	cfg := NewConfig()
  	if filename != "" {
  		b, err := ioutil.ReadFile(filename)
  		if err != nil {
  			return nil, err
  		}
  
  		body := string(b)
  
  		// @TODO: fix for config starts with [logging]
  		body = strings.Replace(body, "\n[logging]\n", "\n[[logging]]\n", -1)
  
  		if _, err := toml.Decode(body, cfg); err != nil {
  			return nil, err
  		}
  	}
  
  	if cfg.Logging == nil {
  		cfg.Logging = make([]zapwriter.Config, 0)
  	}
  
  	if cfg.Common.LogLevel != nil || cfg.Common.Logfile != nil {
  		log.Println("[WARNING] `common.log-level` and `common.logfile` is DEPRICATED. Use `logging` config section")
  
  		l := NewLoggingConfig()
  		if cfg.Common.Logfile != nil {
  			l.File = *cfg.Common.Logfile
  		}
  		if cfg.Common.LogLevel != nil {
  			l.Level = *cfg.Common.LogLevel
  		}
  
  		cfg.Logging = []zapwriter.Config{l}
  	}
  
  	if len(cfg.Logging) == 0 {
  		cfg.Logging = append(cfg.Logging, NewLoggingConfig())
  	}
  
  	if err := zapwriter.CheckConfig(cfg.Logging, nil); err != nil {
  		return nil, err
  	}
  
  	return cfg, nil
  }
docs: // ReadConfig ...