I agree that logrus is unnecessary. However, I would love my logger to print useful information such as the filename and line number. I see a lot of x.Log(“uidassigner_main”) and there is no need for that if you have something even better — the file and line number.
x.go can have a global info log and error log. Both will be initialized like
logger := log.New(os.Stdout, "INFO: ", log.Ldate|log.Ltime|log.Lshortfile)
To log, you just write
x.Info(...)
x.Infof(...)
x.Error(...)
x.Errorf(...)
Ok, errorf might be confusing. Maybe some other name.
There could also be a global init, something that runs after packages run their init(), like GoogleInit. Every main will just begin with x.Init which will initialize flags and run a list of init functions that packages init might have added.