logging: add a NEVER_DISCARD flag to LogWriter
[folly.git] / folly / experimental / logging / AsyncFileWriter.cpp
index 3aab81ad06e4ce95cde145b024b130011b2eb7cc..61c379fe8cf08369a2ac9efb61e15602c0329a1b 100644 (file)
@@ -36,13 +36,14 @@ AsyncFileWriter::~AsyncFileWriter() {
   ioThread_.join();
 }
 
-void AsyncFileWriter::writeMessage(StringPiece buffer) {
-  return writeMessage(buffer.str());
+void AsyncFileWriter::writeMessage(StringPiece buffer, uint32_t flags) {
+  return writeMessage(buffer.str(), flags);
 }
 
-void AsyncFileWriter::writeMessage(std::string&& buffer) {
+void AsyncFileWriter::writeMessage(std::string&& buffer, uint32_t flags) {
   auto data = data_.lock();
-  if (data->currentBufferSize >= data->maxBufferBytes) {
+  if ((data->currentBufferSize >= data->maxBufferBytes) &&
+      !(flags & NEVER_DISCARD)) {
     ++data->numDiscarded;
     return;
   }