summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clangd/Logger.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang-tools-extra/clangd/Logger.cpp')
-rw-r--r--clang-tools-extra/clangd/Logger.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/clang-tools-extra/clangd/Logger.cpp b/clang-tools-extra/clangd/Logger.cpp
index 5ce3351f13e..9d4e7b93c72 100644
--- a/clang-tools-extra/clangd/Logger.cpp
+++ b/clang-tools-extra/clangd/Logger.cpp
@@ -8,6 +8,9 @@
//===----------------------------------------------------------------------===//
#include "Logger.h"
+#include "Trace.h"
+#include "llvm/Support/Chrono.h"
+#include "llvm/Support/FormatVariadic.h"
#include "llvm/Support/raw_ostream.h"
#include <mutex>
@@ -44,5 +47,17 @@ const char *detail::debugType(const char *Filename) {
return Filename;
}
+void StreamLogger::log(Logger::Level Level,
+ const llvm::formatv_object_base &Message) {
+ if (Level < MinLevel)
+ return;
+ llvm::sys::TimePoint<> Timestamp = std::chrono::system_clock::now();
+ trace::log(Message);
+ std::lock_guard<std::mutex> Guard(StreamMutex);
+ Logs << llvm::formatv("{0}[{1:%H:%M:%S.%L}] {2}\n", indicator(Level),
+ Timestamp, Message);
+ Logs.flush();
+}
+
} // namespace clangd
} // namespace clang
OpenPOWER on IntegriCloud