Quil is a easy to use library that supports message levels, multiple targets, and message contexts. Quil is thread safe and so it is possible to send loggers accross threads.
Examples
Basic example:
# extern crate quil;
#
Tue, 7 Nov 2017 23:55:42 +0000 - info: hello world src=root
Sub-context example:
# extern crate quil;
#
Tue, 7 Nov 2017 23:55:42 +0000 - info: hello src=root tag=1
Tue, 7 Nov 2017 23:55:42 +0000 - info: world src=root marker=49