4
Automatic checking of information in error logs/error return types?
(sh.itjust.works)
Welcome to the Rust community! This is a place to discuss about the Rust programming language.
Credits
If you're not familiar with the
tracing
crate, give theinstrument
page a read. You may find the#[instrument(err)]
part particularly useful.As for the errors themselves, if you're using
thiserror
(you should be), then the variants in your error enum would/should contain the relevant context data. And the chain of errors would be tracked viasource
/#[source]
fields, as explained in the crate docs. You can see such chains if you useanyhow
in your application code.I didn't know about
#[instrument(err)]
but in general I am well aware of the ways to log and return errors,I am more concerned with ways to prevent myself from accidentally forgetting to log some relevant information until the first time that error is logged somewhere where I need to debug the actual problem and then having to essentially create a new version just to add that logging (if I am lucky enough for the error to be reproducible at all).