//===--- Logger.cpp - Logger interface for clangd -------------------------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #include "Logger.h" #include "llvm/Support/raw_ostream.h" #include namespace clang { namespace clangd { namespace { Logger *L = nullptr; } // namespace LoggingSession::LoggingSession(clangd::Logger &Instance) { assert(!L); L = &Instance; } LoggingSession::~LoggingSession() { L = nullptr; } void log(const llvm::Twine &Message) { if (L) L->log(Message); else { static std::mutex Mu; std::lock_guard Guard(Mu); llvm::errs() << Message << "\n"; } } } // namespace clangd } // namespace clang