proxygen
|
#include <ImmediateFileWriter.h>
Public Member Functions | |
ImmediateFileWriter (folly::StringPiece path) | |
ImmediateFileWriter (folly::File &&file) | |
void | writeMessage (folly::StringPiece buffer, uint32_t flags=0) override |
void | flush () override |
bool | ttyOutput () const override |
const folly::File & | getFile () const |
![]() | |
virtual | ~LogWriter () |
virtual void | writeMessage (std::string &&buffer, uint32_t flags=0) |
Private Member Functions | |
ImmediateFileWriter (ImmediateFileWriter const &)=delete | |
ImmediateFileWriter & | operator= (ImmediateFileWriter const &)=delete |
Private Attributes | |
folly::File | file_ |
Additional Inherited Members | |
![]() | |
enum | Flags : uint32_t { NO_FLAGS = 0x00, NEVER_DISCARD = 0x01 } |
A LogWriter implementation that immediately writes to a file descriptor when it is invoked.
The downside of this class is that logging I/O occurs directly in your normal program threads, so that logging I/O may block or slow down normal processing.
However, one benefit of this class is that log messages are written out immediately, so if your program crashes, all log messages generated before the crash will have already been written, and no messages will be lost.
Definition at line 36 of file ImmediateFileWriter.h.
|
explicit |
Construct an ImmediateFileWriter that appends to the file at the specified path.
Definition at line 27 of file ImmediateFileWriter.cpp.
References folly::Range< Iter >::str().
Referenced by getFile().
|
explicit |
Construct an ImmediateFileWriter that writes to the specified File object.
Definition at line 30 of file ImmediateFileWriter.cpp.
References folly::gen::move.
|
privatedelete |
|
overridevirtual |
Block until all messages that have already been sent to this LogWriter have been written.
Other threads may still call writeMessage() while flush() is running. writeMessage() calls that did not complete before the flush() call started will not necessarily be processed by the flush call.
Implements folly::LogWriter.
Definition at line 52 of file ImmediateFileWriter.cpp.
|
inline |
Get the output file.
Definition at line 63 of file ImmediateFileWriter.h.
References file_, ImmediateFileWriter(), and operator=().
|
privatedelete |
Referenced by getFile().
|
inlineoverridevirtual |
Returns true if the output steam is a tty.
Implements folly::LogWriter.
Definition at line 56 of file ImmediateFileWriter.h.
References folly::File::fd(), and file_.
|
overridevirtual |
Write a serialized log message.
The flags parameter is a bitwise-ORed set of Flag values defined above.
Implements folly::LogWriter.
Definition at line 33 of file ImmediateFileWriter.cpp.
References folly::Range< Iter >::data(), folly::errnoStr(), folly::File::fd(), file_, folly::LoggerDB::internalWarning(), folly::Range< Iter >::size(), and folly::writeFull().
|
private |
Definition at line 71 of file ImmediateFileWriter.h.
Referenced by getFile(), ttyOutput(), and writeMessage().