I assume that the first part of the BufferedLogger name explains its speed, compared to the other two, which I expect to write messages immediately after receiving them.
The trade-off will be improved throughput of a buffered object with a reduced I / O load with respect to the possible loss of log information resulting from a failure to work with unstated messages in the store.
Interestingly, in order to increase throughput without losing all the security of messages and due to the increased complexity, two forms could be combined: use a buffered logger for information that is useful, but does not require 100.0000% (for example, small random losses do not cause pain) and not buffered of your choice for messages that you simply must have, for legal or diagnostic purposes, say.
If the volume of required messages is relatively small compared to the ones you like to use (and this should be, or this approach is probably unnecessarily complicated), then which unbuffered registrar you use does not really matter.
source share