log errors/exceptions at the error level, and nothing else
make judicious use of trace, info, debug, etc. levels
properly namespace loggers so that the log level can be set
appropriately depending on the environment and current needs
get the fundamentals right - if you are logging an exception, do you actually pass the exception to the logger? Same goes
for things like failed API calls. Don't just log "API call failed". Log the entire response including status code and messages.
log rotation
log aggregation
log errors/exceptions at the error level, and nothing else
make judicious use of trace, info, debug, etc. levels
properly namespace loggers so that the log level can be set appropriately depending on the environment and current needs
get the fundamentals right - if you are logging an exception, do you actually pass the exception to the logger? Same goes for things like failed API calls. Don't just log "API call failed". Log the entire response including status code and messages.