From ae652cab3cf0541173b31273bcec5746a9a81e68 Mon Sep 17 00:00:00 2001 From: Rutger Broekhoff Date: Fri, 11 Sep 2026 17:22:44 +0200 Subject: Speed improvements --- server/src/log.cpp | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) (limited to 'server/src/log.cpp') diff --git a/server/src/log.cpp b/server/src/log.cpp index bb9fde2..5953c14 100644 --- a/server/src/log.cpp +++ b/server/src/log.cpp @@ -30,17 +30,7 @@ auto sink::level() const -> enum level { return lvl_; } auto sink::set_level(enum level lvl) -> void { lvl_ = lvl; } -auto sink::write(tmp_message msg) -> void -{ - auto sos = std::osyncstream{os_}; - sos << "[" << msg.lvl; - if (!msg.component.empty()) - sos << " " << msg.component; - sos << "] " << msg.txt; - for (auto const& [k, v] : msg.attrs) - sos << " " << k << "=" << std::quoted(v); - sos << std::endl; // we want the flush! -} +auto sink::write() -> std::osyncstream { return std::osyncstream{os_}; } auto make_sink(level lvl) -> std::shared_ptr { @@ -51,13 +41,17 @@ auto logger::log_at(log::level lvl, std::string_view fmt, std::format_args args) -> logger& { if (sink_->level() <= lvl) - sink_->write( - sink::tmp_message{ - .lvl = lvl, - .component = component_, - .txt = std::vformat(fmt, args), - .attrs = attrs_, - }); + { + auto sos = sink_->write(); + sos << "[" << lvl; + if (!component_.empty()) + sos << " " << component_; + sos << "] "; + std::vprint_unicode(sos, fmt, args); + for (auto const& [k, v] : attrs_) + sos << " " << k << "=" << std::quoted(v); + sos << std::endl; // we want the flush! + } return *this; } -- cgit v1.3