Stream object which targets a log.
A stream logger object makes it simpler to send various things to a log. You can just use the operator<< implementation to stream anything to the log, which is cached until a Stream::Flush is encountered, or the stream itself is destroyed, at which point the cached contents are sent to the underlying log. You can use Log::stream() directly without assigning it to a local variable and as soon as the streaming is finished, the object will be destroyed and the message logged.
- You can stream control operations to this object too, such as std::setw() and std::setfill() to control formatting.
- Note
- Each Stream object is not thread safe, so do not pass it between threads. Multiple threads can hold their own Stream instances pointing at the same Log though and that is threadsafe.