1313#include " llvm/Support/Error.h"
1414#include " llvm/Support/FormatAdapters.h"
1515#include " llvm/Support/FormatVariadic.h"
16- #include < chrono>
17- #include < fstream>
16+ #include " llvm/Support/raw_ostream.h"
1817#include < mutex>
1918#include < string>
19+ #include < system_error>
2020
2121// Write a message to log, if logging is enabled.
2222#define DAP_LOG (log, ...) \
2323 do { \
2424 ::lldb_dap::Log *log_private = (log); \
2525 if (log_private) { \
26- ::std::chrono::duration<double > now{ \
27- ::std::chrono::system_clock::now ().time_since_epoch()}; \
28- ::std::string out; \
29- ::llvm::raw_string_ostream os (out); \
30- os << ::llvm::formatv (" {0:f9} " , now.count ()).str () \
31- << ::llvm::formatv (__VA_ARGS__).str () << " \n " ; \
32- log_private->WriteMessage (out); \
26+ log_private->WriteMessage (::llvm::formatv (__VA_ARGS__).str ()); \
3327 } \
3428 } while (0 )
3529
4034 ::lldb_dap::Log *log_private = (log); \
4135 ::llvm::Error error_private = (error); \
4236 if (log_private && error_private) { \
43- ::std::chrono::duration<double > now{ \
44- std::chrono::system_clock::now ().time_since_epoch ()}; \
45- ::std::string out; \
46- ::llvm::raw_string_ostream os (out); \
47- os << ::llvm::formatv (" {0:f9} " , now.count ()).str () \
48- << ::lldb_dap::FormatError (::std::move (error_private), __VA_ARGS__) \
49- << " \n " ; \
50- log_private->WriteMessage (out); \
37+ log_private->WriteMessage ( \
38+ ::lldb_dap::FormatError (::std::move(error_private), __VA_ARGS__)); \
5139 } else \
5240 ::llvm::consumeError (::std::move(error_private)); \
5341 } while (0 )
@@ -59,19 +47,13 @@ namespace lldb_dap {
5947class Log final {
6048public:
6149 // / Creates a log file with the given filename.
62- Log (llvm::StringRef filename);
63-
64- // / Log is not copyable.
65- // / @{
66- Log (const Log &) = delete ;
67- void operator =(const Log &) = delete ;
68- // / @}
50+ Log (llvm::StringRef filename, std::error_code &EC);
6951
7052 void WriteMessage (llvm::StringRef message);
7153
7254private:
7355 std::mutex m_mutex;
74- std::ofstream m_stream;
56+ llvm::raw_fd_ostream m_stream;
7557};
7658
7759template <typename ... Args>
0 commit comments