diff --git a/src/filesystem_sdl.cpp b/src/filesystem_sdl.cpp index f3780a54c4d..5337cfd3a9d 100644 --- a/src/filesystem_sdl.cpp +++ b/src/filesystem_sdl.cpp @@ -18,6 +18,7 @@ #include "log.hpp" #include +#include static lg::log_domain log_filesystem("filesystem"); #define ERR_FS LOG_STREAM(err, log_filesystem) diff --git a/src/gui/auxiliary/iterator/policy_order.hpp b/src/gui/auxiliary/iterator/policy_order.hpp index 72765714105..5f264d285f6 100644 --- a/src/gui/auxiliary/iterator/policy_order.hpp +++ b/src/gui/auxiliary/iterator/policy_order.hpp @@ -20,6 +20,7 @@ #include "gui/widgets/widget.hpp" #include +#include namespace gui2 { diff --git a/src/gui/dialogs/outro.cpp b/src/gui/dialogs/outro.cpp index b2cf620acd3..b8e3f65e2e1 100644 --- a/src/gui/dialogs/outro.cpp +++ b/src/gui/dialogs/outro.cpp @@ -25,6 +25,8 @@ #include "gui/widgets/settings.hpp" #include "gui/widgets/window.hpp" +#include + namespace gui2 { namespace dialogs diff --git a/src/gui/widgets/generator.cpp b/src/gui/widgets/generator.cpp index 5a5c308e18f..5744ff8f01f 100644 --- a/src/gui/widgets/generator.cpp +++ b/src/gui/widgets/generator.cpp @@ -20,6 +20,7 @@ #include "wml_exception.hpp" #include +#include namespace gui2 { diff --git a/src/log.cpp b/src/log.cpp index ca8ef9aaeee..a8fa302ac68 100644 --- a/src/log.cpp +++ b/src/log.cpp @@ -47,7 +47,6 @@ static bool timestamp = true; static bool precise_timestamp = false; static std::mutex log_mutex; -static boost::posix_time::time_facet facet("%Y%m%d %H:%M:%S%F "); static std::ostream *output_stream = nullptr; static std::ostream& output() @@ -198,14 +197,15 @@ std::string get_timespan(const std::time_t& t) { return sout.str(); } -static void print_precise_timestamp(std::ostream & out) noexcept +static void print_precise_timestamp(std::ostream& out) noexcept { try { - facet.put( - std::ostreambuf_iterator(out), - out, - ' ', - boost::posix_time::microsec_clock::local_time()); + int64_t micros = std::chrono::duration_cast(std::chrono::high_resolution_clock::now().time_since_epoch()).count(); + std::time_t seconds = micros/1'000'000; + int fractional = micros-(seconds*1'000'000); + char c = out.fill('0'); + out << std::put_time(std::localtime(&seconds), "%Y%m%d %H:%M:%S") << "." << std::setw(6) << fractional; + out.fill(c); } catch(...) {} } @@ -269,7 +269,7 @@ void scope_logger::do_log_entry(const std::string& str) noexcept { str_ = str; try { - ticks_ = boost::posix_time::microsec_clock::local_time(); + ticks_ = std::chrono::duration_cast(std::chrono::high_resolution_clock::now().time_since_epoch()).count(); } catch(...) {} debug()(domain_, false, true) | formatter() << "{ BEGIN: " << str_ << "\n"; ++indent; @@ -279,7 +279,7 @@ void scope_logger::do_log_exit() noexcept { long ticks = 0; try { - ticks = (boost::posix_time::microsec_clock::local_time() - ticks_).total_milliseconds(); + ticks = std::chrono::duration_cast(std::chrono::high_resolution_clock::now().time_since_epoch()).count() - ticks_; } catch(...) {} --indent; auto output = debug()(domain_, false, true); diff --git a/src/log.hpp b/src/log.hpp index 02e53939f3f..e8cebe30b12 100644 --- a/src/log.hpp +++ b/src/log.hpp @@ -56,12 +56,10 @@ #include // as above. iostream (actually, iosfwd) declares stringstream as an incomplete type, but does not define it #include #include +#include -#include #include "formatter.hpp" -using boost::posix_time::ptime; - namespace lg { /** @@ -167,7 +165,7 @@ log_domain& general(); class scope_logger { - ptime ticks_; + int64_t ticks_; const log_domain& domain_; std::string str_; public: