Also, `SILENT` has nothing to do with logging, but all of the other `levels` are just for logging. `SILENT` is just for throwing errors. I propose that these two functions be separated.