package main import ( "flag" "fmt" "io" "log" "os" "path/filepath" ) var Error *log.Logger var Warning *log.Logger func init() { log.SetFlags(log.Lmicroseconds | log.Lshortfile) logger := io.MultiWriter(os.Stdout) log.SetOutput(logger) Error = log.New(io.MultiWriter(os.Stderr, os.Stdout), fmt.Sprintf("%sERROR:%s ", "\033[0;101m", "\033[0m"), log.Lmicroseconds|log.Lshortfile) Warning = log.New(io.MultiWriter(os.Stdout), fmt.Sprintf("%sWarning:%s ", "\033[0;93m", "\033[0m"), log.Lmicroseconds|log.Lshortfile) } func main() { envfile := flag.String("envfile", ".env", "") flag.Parse() env, err := loadEnv(*envfile) if err != nil { Error.Printf("Error leading env file: %v", err) return } log.Printf("%#v", env) } func loadEnv(fpath string) (map[string]string, error) { res := make(map[string]string) fpath = filepath.Clean(fpath) log.Printf("Trying to open env file at %s", fpath) return res, nil }