diff options
Diffstat (limited to 'clang-tools-extra/clangd/Logger.cpp')
-rw-r--r-- | clang-tools-extra/clangd/Logger.cpp | 15 |
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 |