In my Rust Rocket REST application I use env_logger for logging, which I've configured with something similar to this:
env_logger::builder()
.format(|buf, record| {
writeln!(buf, "{}: {}", record.level(), record.args())
})
.init();
If most of the requests I expect contain a user/session identifier inside a header or inside the JSON POST request data (under a well-known name), how can I do so that that user/session identifier is automatically written in all log lines where possible?
Something like:
writeln!(buf, "{} ({}): {}", record.level(), my_user_or_session_identifier, record.args())
I've done stuff like that in other languages, where I've used a request filter that adds the user/session identifier in a thread-local object at the beginning of every request.