The issue I usually have with these logging libraries is that they often don't handle structured data well, which is something that's commonly needed in a logging library.
For example, it's fine for log entries to be a string when logging to console or a text file, but if you add a sink that logs to a database, service (Sentry, Loki, NewRelic, whatever), or JSON file, you'll generally want some sort of structured data. At the minimum, you'd want the format string (e.g. "Unable to find {id}"
) and the variables (e.g. {"id":123}
) to be stored separately, so that you can get aggregated counts for how often each error is being thrown regardless of the variables.