summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEd Tanous <ed@tanous.net>2023-07-18 03:06:25 +0300
committerEd Tanous <ed@tanous.net>2023-07-20 01:38:41 +0300
commit62598e31d0988d589506d5091bd38f72d61faf5e (patch)
treee3e548632da934083c21cc1262f8b9d8f255f2a9
parent609ba4c9ffb9c6b83861ff557108c89007ca369a (diff)
downloadbmcweb-62598e31d0988d589506d5091bd38f72d61faf5e.tar.xz
Replace logging with std::format
std::format is a much more modern logging solution, and gives us a lot more flexibility, and better compile times when doing logging. Unfortunately, given its level of compile time checks, it needs to be a method, instead of the stream style logging we had before. This requires a pretty substantial change. Fortunately, this change can be largely automated, via the script included in this commit under scripts/replace_logs.py. This is to aid people in moving their patchsets over to the new form in the short period where old patches will be based on the old logging. The intention is that this script eventually goes away. The old style logging (stream based) looked like. BMCWEB_LOG_DEBUG << "Foo " << foo; The new equivalent of the above would be: BMCWEB_LOG_DEBUG("Foo {}", foo); In the course of doing this, this also cleans up several ignored linter errors, including macro usage, and array to pointer deconstruction. Note, This patchset does remove the timestamp from the log message. In practice, this was duplicated between journald and bmcweb, and there's no need for both to exist. One design decision of note is the addition of logPtr. Because the compiler can't disambiguate between const char* and const MyThing*, it's necessary to add an explicit cast to void*. This is identical to how fmt handled it. Tested: compiled with logging meson_option enabled, and launched bmcweb Saw the usual logging, similar to what was present before: ``` [Error include/webassets.hpp:60] Unable to find or open /usr/share/www/ static file hosting disabled [Debug include/persistent_data.hpp:133] Restored Session Timeout: 1800 [Debug redfish-core/include/event_service_manager.hpp:671] Old eventService config not exist [Info src/webserver_main.cpp:59] Starting webserver on port 18080 [Error redfish-core/include/event_service_manager.hpp:1301] inotify_add_watch failed for redfish log file. [Info src/webserver_main.cpp:137] Start Hostname Monitor Service... ``` Signed-off-by: Ed Tanous <ed@tanous.net> Change-Id: I86a46aa2454be7fe80df608cb7e5573ca4029ec8
-rw-r--r--.clang-tidy1
-rw-r--r--http/app.hpp6
-rw-r--r--http/complete_response_fields.hpp4
-rw-r--r--http/http2_connection.hpp90
-rw-r--r--http/http_client.hpp191
-rw-r--r--http/http_connection.hpp107
-rw-r--r--http/http_response.hpp24
-rw-r--r--http/http_server.hpp16
-rw-r--r--http/logging.hpp273
-rw-r--r--http/mutual_tls.hpp35
-rw-r--r--http/nghttp2_adapters.hpp2
-rw-r--r--http/parsing.hpp4
-rw-r--r--http/routing.hpp45
-rw-r--r--http/routing/websocketrule.hpp4
-rw-r--r--http/server_sent_event.hpp38
-rw-r--r--http/websocket.hpp22
-rw-r--r--include/async_resolve.hpp19
-rw-r--r--include/authentication.hpp25
-rw-r--r--include/dbus_monitor.hpp240
-rw-r--r--include/dbus_privileges.hpp20
-rw-r--r--include/dbus_utility.hpp2
-rw-r--r--include/event_service_store.hpp14
-rw-r--r--include/google/google_service_root.hpp8
-rw-r--r--include/hostname_monitor.hpp31
-rw-r--r--include/ibm/locks.hpp94
-rw-r--r--include/ibm/management_console_rest.hpp139
-rw-r--r--include/ibm/utils.hpp8
-rw-r--r--include/image_upload.hpp10
-rw-r--r--include/kvm_websocket.hpp59
-rw-r--r--include/login_routes.hpp15
-rw-r--r--include/nbd_proxy.hpp45
-rw-r--r--include/obmc_console.hpp61
-rw-r--r--include/openbmc_dbus_rest.hpp213
-rw-r--r--include/persistent_data.hpp39
-rw-r--r--include/sessions.hpp15
-rw-r--r--include/ssl_key_handler.hpp53
-rw-r--r--include/vm_websocket.hpp23
-rw-r--r--include/webassets.hpp15
-rw-r--r--redfish-core/include/event_service_manager.hpp123
-rw-r--r--redfish-core/include/gzfile.hpp28
-rw-r--r--redfish-core/include/privileges.hpp8
-rw-r--r--redfish-core/include/query.hpp8
-rw-r--r--redfish-core/include/redfish_aggregator.hpp175
-rw-r--r--redfish-core/include/snmp_trap_event_clients.hpp8
-rw-r--r--redfish-core/include/utils/chassis_utils.hpp12
-rw-r--r--redfish-core/include/utils/collection.hpp5
-rw-r--r--redfish-core/include/utils/dbus_utils.hpp9
-rw-r--r--redfish-core/include/utils/json_utils.hpp23
-rw-r--r--redfish-core/include/utils/pcie_util.hpp3
-rw-r--r--redfish-core/include/utils/query_param.hpp51
-rw-r--r--redfish-core/include/utils/sw_utils.hpp38
-rw-r--r--redfish-core/include/utils/telemetry_utils.hpp12
-rw-r--r--redfish-core/include/utils/time_utils.hpp10
-rw-r--r--redfish-core/lib/account_service.hpp131
-rw-r--r--redfish-core/lib/aggregation_service.hpp4
-rw-r--r--redfish-core/lib/bios.hpp2
-rw-r--r--redfish-core/lib/cable.hpp8
-rw-r--r--redfish-core/lib/certificate_service.hpp93
-rw-r--r--redfish-core/lib/chassis.hpp68
-rw-r--r--redfish-core/lib/ethernet.hpp34
-rw-r--r--redfish-core/lib/event_service.hpp7
-rw-r--r--redfish-core/lib/eventservice_sse.hpp2
-rw-r--r--redfish-core/lib/fabric_adapters.hpp12
-rw-r--r--redfish-core/lib/fan.hpp28
-rw-r--r--redfish-core/lib/health.hpp4
-rw-r--r--redfish-core/lib/hypervisor_system.hpp62
-rw-r--r--redfish-core/lib/led.hpp28
-rw-r--r--redfish-core/lib/log_services.hpp186
-rw-r--r--redfish-core/lib/manager_diagnostic_data.hpp2
-rw-r--r--redfish-core/lib/managers.hpp214
-rw-r--r--redfish-core/lib/memory.hpp10
-rw-r--r--redfish-core/lib/metric_report.hpp4
-rw-r--r--redfish-core/lib/metric_report_definition.hpp26
-rw-r--r--redfish-core/lib/network_protocol.hpp2
-rw-r--r--redfish-core/lib/pcie.hpp64
-rw-r--r--redfish-core/lib/pcie_slots.hpp21
-rw-r--r--redfish-core/lib/power.hpp24
-rw-r--r--redfish-core/lib/power_supply.hpp46
-rw-r--r--redfish-core/lib/processor.hpp59
-rw-r--r--redfish-core/lib/redfish_util.hpp23
-rw-r--r--redfish-core/lib/redfish_v1.hpp4
-rw-r--r--redfish-core/lib/sensors.hpp287
-rw-r--r--redfish-core/lib/storage.hpp75
-rw-r--r--redfish-core/lib/systems.hpp377
-rw-r--r--redfish-core/lib/task.hpp2
-rw-r--r--redfish-core/lib/telemetry_service.hpp2
-rw-r--r--redfish-core/lib/thermal_subsystem.hpp2
-rw-r--r--redfish-core/lib/trigger.hpp35
-rw-r--r--redfish-core/lib/update_service.hpp96
-rw-r--r--redfish-core/lib/virtual_media.hpp91
-rw-r--r--redfish-core/src/error_messages.cpp13
-rwxr-xr-xscripts/replace_logs.py100
-rw-r--r--src/boost_asio.cpp6
-rw-r--r--src/webserver_main.cpp22
94 files changed, 2459 insertions, 2340 deletions
diff --git a/.clang-tidy b/.clang-tidy
index 7a476aaf2a..71e80a4eed 100644
--- a/.clang-tidy
+++ b/.clang-tidy
@@ -330,5 +330,6 @@ CheckOptions:
- { key: readability-identifier-naming.ParameterCase, value: camelBack }
- { key: readability-identifier-naming.NamespaceCase, value: lower_case }
- { key: readability-identifier-naming.StructCase, value: CamelCase }
+ - { key: readability-identifier-naming.FunctionIgnoredRegexp, value: (BMCWEB_LOG_DEBUG|BMCWEB_LOG_INFO|BMCWEB_LOG_WARNING|BMCWEB_LOG_ERROR|BMCWEB_LOG_CRITICAL) }
- { key: cppcoreguidelines-macro-usage.AllowedRegexp, value: DEBUG*|NLOHMANN_JSON_SERIALIZE_ENUM }
- { key: performance-unnecessary-value-param.AllowedTypes, value: ((segments_view)|(url_view)) }
diff --git a/http/app.hpp b/http/app.hpp
index 0f0f47b80f..d9c88b9563 100644
--- a/http/app.hpp
+++ b/http/app.hpp
@@ -144,7 +144,7 @@ class App
void debugPrint()
{
- BMCWEB_LOG_DEBUG << "Routing:";
+ BMCWEB_LOG_DEBUG("Routing:");
router.debugPrint();
}
@@ -162,8 +162,8 @@ class App
App& ssl(std::shared_ptr<boost::asio::ssl::context>&& ctx)
{
sslContext = std::move(ctx);
- BMCWEB_LOG_INFO << "app::ssl context use_count="
- << sslContext.use_count();
+ BMCWEB_LOG_INFO("app::ssl context use_count={}",
+ sslContext.use_count());
return *this;
}
diff --git a/http/complete_response_fields.hpp b/http/complete_response_fields.hpp
index 1819db59b5..66a4bb79af 100644
--- a/http/complete_response_fields.hpp
+++ b/http/complete_response_fields.hpp
@@ -20,8 +20,8 @@ namespace crow
inline void completeResponseFields(const Request& req, Response& res)
{
- BMCWEB_LOG_INFO << "Response: " << ' ' << req.url().encoded_path() << ' '
- << res.resultInt();
+ BMCWEB_LOG_INFO("Response: {} {}", req.url().encoded_path(),
+ res.resultInt());
addSecurityHeaders(req, res);
authentication::cleanupTempSession(req);
diff --git a/http/http2_connection.hpp b/http/http2_connection.hpp
index dad5089731..a63b234575 100644
--- a/http/http2_connection.hpp
+++ b/http/http2_connection.hpp
@@ -66,7 +66,7 @@ class HTTP2Connection :
if (sendServerConnectionHeader() != 0)
{
- BMCWEB_LOG_ERROR << "send_server_connection_header failed";
+ BMCWEB_LOG_ERROR("send_server_connection_header failed");
return;
}
doRead();
@@ -74,7 +74,7 @@ class HTTP2Connection :
int sendServerConnectionHeader()
{
- BMCWEB_LOG_DEBUG << "send_server_connection_header()";
+ BMCWEB_LOG_DEBUG("send_server_connection_header()");
uint32_t maxStreams = 4;
std::array<nghttp2_settings_entry, 2> iv = {
@@ -83,7 +83,7 @@ class HTTP2Connection :
int rv = ngSession.submitSettings(iv);
if (rv != 0)
{
- BMCWEB_LOG_ERROR << "Fatal error: " << nghttp2_strerror(rv);
+ BMCWEB_LOG_ERROR("Fatal error: {}", nghttp2_strerror(rv));
return -1;
}
return 0;
@@ -97,20 +97,20 @@ class HTTP2Connection :
{
if (source == nullptr || source->ptr == nullptr)
{
- BMCWEB_LOG_DEBUG << "Source was null???";
+ BMCWEB_LOG_DEBUG("Source was null???");
return NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE;
}
- BMCWEB_LOG_DEBUG << "File read callback length: " << length;
+ BMCWEB_LOG_DEBUG("File read callback length: {}", length);
// NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast)
Http2StreamData* str = reinterpret_cast<Http2StreamData*>(source->ptr);
crow::Response& res = str->res;
- BMCWEB_LOG_DEBUG << "total: " << res.body().size()
- << " send_sofar: " << str->sentSofar;
+ BMCWEB_LOG_DEBUG("total: {} send_sofar: {}", res.body().size(),
+ str->sentSofar);
size_t toSend = std::min(res.body().size() - str->sentSofar, length);
- BMCWEB_LOG_DEBUG << "Copying " << toSend << " bytes to buf";
+ BMCWEB_LOG_DEBUG("Copying {} bytes to buf", toSend);
std::string::iterator bodyBegin = res.body().begin();
std::advance(bodyBegin, str->sentSofar);
@@ -120,7 +120,7 @@ class HTTP2Connection :
if (str->sentSofar >= res.body().size())
{
- BMCWEB_LOG_DEBUG << "Setting OEF flag";
+ BMCWEB_LOG_DEBUG("Setting OEF flag");
*dataFlags |= NGHTTP2_DATA_FLAG_EOF;
//*dataFlags |= NGHTTP2_DATA_FLAG_NO_COPY;
}
@@ -138,7 +138,7 @@ class HTTP2Connection :
int sendResponse(Response& completedRes, int32_t streamId)
{
- BMCWEB_LOG_DEBUG << "send_response stream_id:" << streamId;
+ BMCWEB_LOG_DEBUG("send_response stream_id:{}", streamId);
auto it = streams.find(streamId);
if (it == streams.end())
@@ -175,7 +175,7 @@ class HTTP2Connection :
int rv = ngSession.submitResponse(streamId, hdr, &dataPrd);
if (rv != 0)
{
- BMCWEB_LOG_ERROR << "Fatal error: " << nghttp2_strerror(rv);
+ BMCWEB_LOG_ERROR("Fatal error: {}", nghttp2_strerror(rv));
close();
return -1;
}
@@ -201,7 +201,7 @@ class HTTP2Connection :
int onRequestRecv(int32_t streamId)
{
- BMCWEB_LOG_DEBUG << "on_request_recv";
+ BMCWEB_LOG_DEBUG("on_request_recv");
auto it = streams.find(streamId);
if (it == streams.end())
@@ -211,14 +211,14 @@ class HTTP2Connection :
}
crow::Request& thisReq = it->second->req;
- BMCWEB_LOG_DEBUG << "Handling " << &thisReq << " \""
- << thisReq.url().encoded_path() << "\"";
+ BMCWEB_LOG_DEBUG("Handling {} \"{}\"", logPtr(&thisReq),
+ thisReq.url().encoded_path());
crow::Response& thisRes = it->second->res;
thisRes.setCompleteRequestHandler(
[this, streamId](Response& completeRes) {
- BMCWEB_LOG_DEBUG << "res.completeRequestHandler called";
+ BMCWEB_LOG_DEBUG("res.completeRequestHandler called");
if (sendResponse(completeRes, streamId) != 0)
{
close();
@@ -234,7 +234,7 @@ class HTTP2Connection :
int onFrameRecvCallback(const nghttp2_frame& frame)
{
- BMCWEB_LOG_DEBUG << "frame type " << static_cast<int>(frame.hd.type);
+ BMCWEB_LOG_DEBUG("frame type {}", static_cast<int>(frame.hd.type));
switch (frame.hd.type)
{
case NGHTTP2_DATA:
@@ -255,15 +255,15 @@ class HTTP2Connection :
const nghttp2_frame* frame,
void* userData)
{
- BMCWEB_LOG_DEBUG << "on_frame_recv_callback";
+ BMCWEB_LOG_DEBUG("on_frame_recv_callback");
if (userData == nullptr)
{
- BMCWEB_LOG_CRITICAL << "user data was null?";
+ BMCWEB_LOG_CRITICAL("user data was null?");
return NGHTTP2_ERR_CALLBACK_FAILURE;
}
if (frame == nullptr)
{
- BMCWEB_LOG_CRITICAL << "frame was null?";
+ BMCWEB_LOG_CRITICAL("frame was null?");
return NGHTTP2_ERR_CALLBACK_FAILURE;
}
return userPtrToSelf(userData).onFrameRecvCallback(*frame);
@@ -281,10 +281,10 @@ class HTTP2Connection :
int32_t streamId,
uint32_t /*unused*/, void* userData)
{
- BMCWEB_LOG_DEBUG << "on_stream_close_callback stream " << streamId;
+ BMCWEB_LOG_DEBUG("on_stream_close_callback stream {}", streamId);
if (userData == nullptr)
{
- BMCWEB_LOG_CRITICAL << "user data was null?";
+ BMCWEB_LOG_CRITICAL("user data was null?");
return NGHTTP2_ERR_CALLBACK_FAILURE;
}
auto stream = userPtrToSelf(userData).streams.find(streamId);
@@ -308,8 +308,8 @@ class HTTP2Connection :
std::string_view valueSv(reinterpret_cast<const char*>(value.data()),
value.size());
- BMCWEB_LOG_DEBUG << "on_header_callback name: " << nameSv << " value "
- << valueSv;
+ BMCWEB_LOG_DEBUG("on_header_callback name: {} value {}", nameSv,
+ valueSv);
switch (frame.hd.type)
{
@@ -321,7 +321,7 @@ class HTTP2Connection :
auto thisStream = streams.find(frame.hd.stream_id);
if (thisStream == streams.end())
{
- BMCWEB_LOG_ERROR << "Unknown stream" << frame.hd.stream_id;
+ BMCWEB_LOG_ERROR("Unknown stream{}", frame.hd.stream_id);
close();
return -1;
}
@@ -338,7 +338,7 @@ class HTTP2Connection :
boost::beast::http::string_to_verb(valueSv);
if (verb == boost::beast::http::verb::unknown)
{
- BMCWEB_LOG_ERROR << "Unknown http verb " << valueSv;
+ BMCWEB_LOG_ERROR("Unknown http verb {}", valueSv);
close();
return -1;
}
@@ -365,22 +365,22 @@ class HTTP2Connection :
{
if (userData == nullptr)
{
- BMCWEB_LOG_CRITICAL << "user data was null?";
+ BMCWEB_LOG_CRITICAL("user data was null?");
return NGHTTP2_ERR_CALLBACK_FAILURE;
}
if (frame == nullptr)
{
- BMCWEB_LOG_CRITICAL << "frame was null?";
+ BMCWEB_LOG_CRITICAL("frame was null?");
return NGHTTP2_ERR_CALLBACK_FAILURE;
}
if (name == nullptr)
{
- BMCWEB_LOG_CRITICAL << "name was null?";
+ BMCWEB_LOG_CRITICAL("name was null?");
return NGHTTP2_ERR_CALLBACK_FAILURE;
}
if (value == nullptr)
{
- BMCWEB_LOG_CRITICAL << "value was null?";
+ BMCWEB_LOG_CRITICAL("value was null?");
return NGHTTP2_ERR_CALLBACK_FAILURE;
}
return userPtrToSelf(userData).onHeaderCallback(*frame, {name, namelen},
@@ -392,7 +392,7 @@ class HTTP2Connection :
if (frame.hd.type == NGHTTP2_HEADERS &&
frame.headers.cat == NGHTTP2_HCAT_REQUEST)
{
- BMCWEB_LOG_DEBUG << "create stream for id " << frame.hd.stream_id;
+ BMCWEB_LOG_DEBUG("create stream for id {}", frame.hd.stream_id);
std::pair<boost::container::flat_map<
int32_t, std::unique_ptr<Http2StreamData>>::iterator,
@@ -409,15 +409,15 @@ class HTTP2Connection :
const nghttp2_frame* frame,
void* userData)
{
- BMCWEB_LOG_DEBUG << "on_begin_headers_callback";
+ BMCWEB_LOG_DEBUG("on_begin_headers_callback");
if (userData == nullptr)
{
- BMCWEB_LOG_CRITICAL << "user data was null?";
+ BMCWEB_LOG_CRITICAL("user data was null?");
return NGHTTP2_ERR_CALLBACK_FAILURE;
}
if (frame == nullptr)
{
- BMCWEB_LOG_CRITICAL << "frame was null?";
+ BMCWEB_LOG_CRITICAL("frame was null?");
return NGHTTP2_ERR_CALLBACK_FAILURE;
}
return userPtrToSelf(userData).onBeginHeadersCallback(*frame);
@@ -428,7 +428,7 @@ class HTTP2Connection :
size_t sendLength)
{
self->isWriting = false;
- BMCWEB_LOG_DEBUG << "Sent " << sendLength;
+ BMCWEB_LOG_DEBUG("Sent {}", sendLength);
if (ec)
{
self->close();
@@ -457,7 +457,7 @@ class HTTP2Connection :
ssize_t onSendCallback(nghttp2_session* /*session */, const uint8_t* data,
size_t length, int /* flags */)
{
- BMCWEB_LOG_DEBUG << "On send callback size=" << length;
+ BMCWEB_LOG_DEBUG("On send callback size={}", length);
size_t copied = boost::asio::buffer_copy(
sendBuffer.prepare(length), boost::asio::buffer(data, length));
sendBuffer.commit(copied);
@@ -489,20 +489,20 @@ class HTTP2Connection :
void doRead()
{
- BMCWEB_LOG_DEBUG << this << " doRead";
+ BMCWEB_LOG_DEBUG("{} doRead", logPtr(this));
adaptor.async_read_some(
inBuffer.prepare(8192),
[this, self(shared_from_this())](
const boost::system::error_code& ec, size_t bytesTransferred) {
- BMCWEB_LOG_DEBUG << this << " async_read_some " << bytesTransferred
- << " Bytes";
+ BMCWEB_LOG_DEBUG("{} async_read_some {} Bytes", logPtr(this),
+ bytesTransferred);
if (ec)
{
- BMCWEB_LOG_ERROR << this
- << " Error while reading: " << ec.message();
+ BMCWEB_LOG_ERROR("{} Error while reading: {}", logPtr(this),
+ ec.message());
close();
- BMCWEB_LOG_DEBUG << this << " from read(1)";
+ BMCWEB_LOG_DEBUG("{} from read(1)", logPtr(this));
return;
}
inBuffer.commit(bytesTransferred);
@@ -513,13 +513,13 @@ class HTTP2Connection :
std::span<const uint8_t> bufferSpan{
std::bit_cast<const uint8_t*>(bufferIt.data()),
bufferIt.size()};
- BMCWEB_LOG_DEBUG << "http2 is getting " << bufferSpan.size()
- << " bytes";
+ BMCWEB_LOG_DEBUG("http2 is getting {} bytes",
+ bufferSpan.size());
ssize_t readLen = ngSession.memRecv(bufferSpan);
if (readLen <= 0)
{
- BMCWEB_LOG_ERROR << "nghttp2_session_mem_recv returned "
- << readLen;
+ BMCWEB_LOG_ERROR("nghttp2_session_mem_recv returned {}",
+ readLen);
close();
return;
}
diff --git a/http/http_client.hpp b/http/http_client.hpp
index 07fa85d6f9..d82c566a06 100644
--- a/http/http_client.hpp
+++ b/http/http_client.hpp
@@ -84,7 +84,7 @@ static inline boost::system::error_code
defaultRetryHandler(unsigned int respCode)
{
// As a default, assume 200X is alright
- BMCWEB_LOG_DEBUG << "Using default check for response code validity";
+ BMCWEB_LOG_DEBUG("Using default check for response code validity");
if ((respCode < 200) || (respCode >= 300))
{
return boost::system::errc::make_error_code(
@@ -165,9 +165,8 @@ class ConnectionInfo : public std::enable_shared_from_this<ConnectionInfo>
void doResolve()
{
state = ConnState::resolveInProgress;
- BMCWEB_LOG_DEBUG << "Trying to resolve: " << host << ":"
- << std::to_string(port)
- << ", id: " << std::to_string(connId);
+ BMCWEB_LOG_DEBUG("Trying to resolve: {}:{}, id: {}", host,
+ std::to_string(port), std::to_string(connId));
resolver.async_resolve(host, std::to_string(port),
std::bind_front(&ConnectionInfo::afterResolve,
@@ -180,19 +179,18 @@ class ConnectionInfo : public std::enable_shared_from_this<ConnectionInfo>
{
if (ec || (endpointList.empty()))
{
- BMCWEB_LOG_ERROR << "Resolve failed: " << ec.message() << " "
- << host << ":" << std::to_string(port);
+ BMCWEB_LOG_ERROR("Resolve failed: {} {}:{}", ec.message(), host,
+ std::to_string(port));
state = ConnState::resolveFailed;
waitAndRetry();
return;
}
- BMCWEB_LOG_DEBUG << "Resolved " << host << ":" << std::to_string(port)
- << ", id: " << std::to_string(connId);
+ BMCWEB_LOG_DEBUG("Resolved {}:{}, id: {}", host, std::to_string(port),
+ std::to_string(connId));
state = ConnState::connectInProgress;
- BMCWEB_LOG_DEBUG << "Trying to connect to: " << host << ":"
- << std::to_string(port)
- << ", id: " << std::to_string(connId);
+ BMCWEB_LOG_DEBUG("Trying to connect to: {}:{}, id: {}", host,
+ std::to_string(port), std::to_string(connId));
timer.expires_after(std::chrono::seconds(30));
timer.async_wait(std::bind_front(onTimeout, weak_from_this()));
@@ -217,17 +215,17 @@ class ConnectionInfo : public std::enable_shared_from_this<ConnectionInfo>
timer.cancel();
if (ec)
{
- BMCWEB_LOG_ERROR << "Connect " << endpoint.address().to_string()
- << ":" << std::to_string(endpoint.port())
- << ", id: " << std::to_string(connId)
- << " failed: " << ec.message();
+ BMCWEB_LOG_ERROR("Connect {}:{}, id: {} failed: {}",
+ endpoint.address().to_string(),
+ std::to_string(endpoint.port()),
+ std::to_string(connId), ec.message());
state = ConnState::connectFailed;
waitAndRetry();
return;
}
- BMCWEB_LOG_DEBUG << "Connected to: " << endpoint.address().to_string()
- << ":" << std::to_string(endpoint.port())
- << ", id: " << std::to_string(connId);
+ BMCWEB_LOG_DEBUG(
+ "Connected to: {}:{}, id: {}", endpoint.address().to_string(),
+ std::to_string(endpoint.port()), std::to_string(connId));
if (sslConn)
{
doSslHandshake();
@@ -265,15 +263,14 @@ class ConnectionInfo : public std::enable_shared_from_this<ConnectionInfo>
timer.cancel();
if (ec)
{
- BMCWEB_LOG_ERROR << "SSL Handshake failed -"
- << " id: " << std::to_string(connId)
- << " error: " << ec.message();
+ BMCWEB_LOG_ERROR("SSL Handshake failed - id: {} error: {}",
+ std::to_string(connId), ec.message());
state = ConnState::handshakeFailed;
waitAndRetry();
return;
}
- BMCWEB_LOG_DEBUG << "SSL Handshake successful -"
- << " id: " << std::to_string(connId);
+ BMCWEB_LOG_DEBUG("SSL Handshake successful - id: {}",
+ std::to_string(connId));
state = ConnState::connected;
sendMessage();
}
@@ -316,14 +313,14 @@ class ConnectionInfo : public std::enable_shared_from_this<ConnectionInfo>
timer.cancel();
if (ec)
{
- BMCWEB_LOG_ERROR << "sendMessage() failed: " << ec.message() << " "
- << host << ":" << std::to_string(port);
+ BMCWEB_LOG_ERROR("sendMessage() failed: {} {}:{}", ec.message(),
+ host, std::to_string(port));
state = ConnState::sendFailed;
waitAndRetry();
return;
}
- BMCWEB_LOG_DEBUG << "sendMessage() bytes transferred: "
- << bytesTransferred;
+ BMCWEB_LOG_DEBUG("sendMessage() bytes transferred: {}",
+ bytesTransferred);
recvMessage();
}
@@ -370,28 +367,28 @@ class ConnectionInfo : public std::enable_shared_from_this<ConnectionInfo>
timer.cancel();
if (ec && ec != boost::asio::ssl::error::stream_truncated)
{
- BMCWEB_LOG_ERROR << "recvMessage() failed: " << ec.message()
- << " from " << host << ":" << std::to_string(port);
+ BMCWEB_LOG_ERROR("recvMessage() failed: {} from {}:{}",
+ ec.message(), host, std::to_string(port));
state = ConnState::recvFailed;
waitAndRetry();
return;
}
- BMCWEB_LOG_DEBUG << "recvMessage() bytes transferred: "
- << bytesTransferred;
- BMCWEB_LOG_DEBUG << "recvMessage() data: " << parser->get().body();
+ BMCWEB_LOG_DEBUG("recvMessage() bytes transferred: {}",
+ bytesTransferred);
+ BMCWEB_LOG_DEBUG("recvMessage() data: {}", parser->get().body());
unsigned int respCode = parser->get().result_int();
- BMCWEB_LOG_DEBUG << "recvMessage() Header Response Code: " << respCode;
+ BMCWEB_LOG_DEBUG("recvMessage() Header Response Code: {}", respCode);
// Make sure the received response code is valid as defined by
// the associated retry policy
if (connPolicy->invalidResp(respCode))
{
// The listener failed to receive the Sent-Event
- BMCWEB_LOG_ERROR << "recvMessage() Listener Failed to "
- "receive Sent-Event. Header Response Code: "
- << respCode << " from " << host << ":"
- << std::to_string(port);
+ BMCWEB_LOG_ERROR(
+ "recvMessage() Listener Failed to "
+ "receive Sent-Event. Header Response Code: {} from {}:{}",
+ respCode, host, std::to_string(port));
state = ConnState::recvFailed;
waitAndRetry();
return;
@@ -403,8 +400,7 @@ class ConnectionInfo : public std::enable_shared_from_this<ConnectionInfo>
// Keep the connection alive if server supports it
// Else close the connection
- BMCWEB_LOG_DEBUG << "recvMessage() keepalive : "
- << parser->keep_alive();
+ BMCWEB_LOG_DEBUG("recvMessage() keepalive : {}", parser->keep_alive());
// Copy the response into a Response object so that it can be
// processed by the callback function.
@@ -418,13 +414,13 @@ class ConnectionInfo : public std::enable_shared_from_this<ConnectionInfo>
{
if (ec == boost::asio::error::operation_aborted)
{
- BMCWEB_LOG_DEBUG
- << "async_wait failed since the operation is aborted";
+ BMCWEB_LOG_DEBUG(
+ "async_wait failed since the operation is aborted");
return;
}
if (ec)
{
- BMCWEB_LOG_ERROR << "async_wait failed: " << ec.message();
+ BMCWEB_LOG_ERROR("async_wait failed: {}", ec.message());
// If the timer fails, we need to close the socket anyway, same as
// if it expired.
}
@@ -441,10 +437,9 @@ class ConnectionInfo : public std::enable_shared_from_this<ConnectionInfo>
if ((retryCount >= connPolicy->maxRetryAttempts) ||
(state == ConnState::sslInitFailed))
{
- BMCWEB_LOG_ERROR << "Maximum number of retries reached."
- << " " << host << ":" << std::to_string(port);
- BMCWEB_LOG_DEBUG << "Retry policy: "
- << connPolicy->retryPolicyAction;
+ BMCWEB_LOG_ERROR("Maximum number of retries reached. {}:{}", host,
+ std::to_string(port));
+ BMCWEB_LOG_DEBUG("Retry policy: {}", connPolicy->retryPolicyAction);
if (connPolicy->retryPolicyAction == "TerminateAfterRetries")
{
@@ -470,10 +465,9 @@ class ConnectionInfo : public std::enable_shared_from_this<ConnectionInfo>
retryCount++;
- BMCWEB_LOG_DEBUG << "Attempt retry after "
- << std::to_string(
- connPolicy->retryIntervalSecs.count())
- << " seconds. RetryCount = " << retryCount;
+ BMCWEB_LOG_DEBUG("Attempt retry after {} seconds. RetryCount = {}",
+ std::to_string(connPolicy->retryIntervalSecs.count()),
+ retryCount);
timer.expires_after(connPolicy->retryIntervalSecs);
timer.async_wait(std::bind_front(&ConnectionInfo::onTimerDone, this,
shared_from_this()));
@@ -484,13 +478,13 @@ class ConnectionInfo : public std::enable_shared_from_this<ConnectionInfo>
{
if (ec == boost::asio::error::operation_aborted)
{
- BMCWEB_LOG_DEBUG
- << "async_wait failed since the operation is aborted"
- << ec.message();
+ BMCWEB_LOG_DEBUG(
+ "async_wait failed since the operation is aborted{}",
+ ec.message());
}
else if (ec)
{
- BMCWEB_LOG_ERROR << "async_wait failed: " << ec.message();
+ BMCWEB_LOG_ERROR("async_wait failed: {}", ec.message());
// Ignore the error and continue the retry loop to attempt
// sending the event as per the retry policy
}
@@ -508,15 +502,14 @@ class ConnectionInfo : public std::enable_shared_from_this<ConnectionInfo>
// not_connected happens sometimes so don't bother reporting it.
if (ec && ec != boost::beast::errc::not_connected)
{
- BMCWEB_LOG_ERROR << host << ":" << std::to_string(port)
- << ", id: " << std::to_string(connId)
- << " shutdown failed: " << ec.message();
+ BMCWEB_LOG_ERROR("{}:{}, id: {} shutdown failed: {}", host,
+ std::to_string(port), std::to_string(connId),
+ ec.message());
}
else
{
- BMCWEB_LOG_DEBUG << host << ":" << std::to_string(port)
- << ", id: " << std::to_string(connId)
- << " closed gracefully";
+ BMCWEB_LOG_DEBUG("{}:{}, id: {} closed gracefully", host,
+ std::to_string(port), std::to_string(connId));
}
if (retry)
@@ -549,15 +542,14 @@ class ConnectionInfo : public std::enable_shared_from_this<ConnectionInfo>
{
if (ec)
{
- BMCWEB_LOG_ERROR << host << ":" << std::to_string(port)
- << ", id: " << std::to_string(connId)
- << " shutdown failed: " << ec.message();
+ BMCWEB_LOG_ERROR("{}:{}, id: {} shutdown failed: {}", host,
+ std::to_string(port), std::to_string(connId),
+ ec.message());
}
else
{
- BMCWEB_LOG_DEBUG << host << ":" << std::to_string(port)
- << ", id: " << std::to_string(connId)
- << " closed gracefully";
+ BMCWEB_LOG_DEBUG("{}:{}, id: {} closed gracefully", host,
+ std::to_string(port), std::to_string(connId));
}
shutdownConn(retry);
}
@@ -583,9 +575,9 @@ class ConnectionInfo : public std::enable_shared_from_this<ConnectionInfo>
boost::beast::error_code ec{static_cast<int>(::ERR_get_error()),
boost::asio::error::get_ssl_category()};
- BMCWEB_LOG_ERROR << "SSL_set_tlsext_host_name " << host << ":"
- << port << ", id: " << std::to_string(connId)
- << " failed: " << ec.message();
+ BMCWEB_LOG_ERROR(
+ "SSL_set_tlsext_host_name {}:{}, id: {} failed: {}", host, port,
+ std::to_string(connId), ec.message());
// Set state as sslInit failed so that we close the connection
// and take appropriate action as per retry configuration.
state = ConnState::sslInitFailed;
@@ -611,8 +603,8 @@ class ConnectionInfo : public std::enable_shared_from_this<ConnectionInfo>
if (!sslCtx)
{
- BMCWEB_LOG_ERROR << "prepareSSLContext failed - " << host << ":"
- << port << ", id: " << std::to_string(connId);
+ BMCWEB_LOG_ERROR("prepareSSLContext failed - {}:{}, id: {}",
+ host, port, std::to_string(connId));
// Don't retry if failure occurs while preparing SSL context
// such as certificate is invalid or set cipher failure or set
// host name failure etc... Setting conn state to sslInitFailed
@@ -648,8 +640,8 @@ class ConnectionPool : public std::enable_shared_from_this<ConnectionPool>
{
if (requestQueue.empty())
{
- BMCWEB_LOG_ERROR
- << "setConnProps() should not have been called when requestQueue is empty";
+ BMCWEB_LOG_ERROR(
+ "setConnProps() should not have been called when requestQueue is empty");
return;
}
@@ -657,9 +649,9 @@ class ConnectionPool : public std::enable_shared_from_this<ConnectionPool>
conn.req = std::move(nextReq.req);
conn.callback = std::move(nextReq.callback);
- BMCWEB_LOG_DEBUG << "Setting properties for connection " << conn.host
- << ":" << std::to_string(conn.port)
- << ", id: " << std::to_string(conn.connId);
+ BMCWEB_LOG_DEBUG("Setting properties for connection {}:{}, id: {}",
+ conn.host, std::to_string(conn.port),
+ std::to_string(conn.connId));
// We can remove the request from the queue at this point
requestQueue.pop_front();
@@ -680,11 +672,10 @@ class ConnectionPool : public std::enable_shared_from_this<ConnectionPool>
// Reuse the connection to send the next request in the queue
if (!requestQueue.empty())
{
- BMCWEB_LOG_DEBUG << std::to_string(requestQueue.size())
- << " requests remaining in queue for " << destIP
- << ":" << std::to_string(destPort)
- << ", reusing connnection "
- << std::to_string(connId);
+ BMCWEB_LOG_DEBUG(
+ "{} requests remaining in queue for {}:{}, reusing connnection {}",
+ std::to_string(requestQueue.size()), destIP,
+ std::to_string(destPort), std::to_string(connId));
setConnProps(*conn);
@@ -744,14 +735,13 @@ class ConnectionPool : public std::enable_shared_from_this<ConnectionPool>
if (conn->state == ConnState::idle)
{
- BMCWEB_LOG_DEBUG << "Grabbing idle connection "
- << commonMsg;
+ BMCWEB_LOG_DEBUG("Grabbing idle connection {}", commonMsg);
conn->sendMessage();
}
else
{
- BMCWEB_LOG_DEBUG << "Reusing existing connection "
- << commonMsg;
+ BMCWEB_LOG_DEBUG("Reusing existing connection {}",
+ commonMsg);
conn->doResolve();
}
return;
@@ -762,8 +752,8 @@ class ConnectionPool : public std::enable_shared_from_this<ConnectionPool>
// the queue
if (connections.size() < connPolicy->maxConnections)
{
- BMCWEB_LOG_DEBUG << "Adding new connection to pool " << destIP
- << ":" << std::to_string(destPort);
+ BMCWEB_LOG_DEBUG("Adding new connection to pool {}:{}", destIP,
+ std::to_string(destPort));
auto conn = addConnection();
conn->req = std::move(thisReq);
conn->callback = std::move(cb);
@@ -771,16 +761,17 @@ class ConnectionPool : public std::enable_shared_from_this<ConnectionPool>
}
else if (requestQueue.size() < maxRequestQueueSize)
{
- BMCWEB_LOG_ERROR << "Max pool size reached. Adding data to queue."
- << destIP << ":" << std::to_string(destPort);
+ BMCWEB_LOG_ERROR(
+ "Max pool size reached. Adding data to queue.{}:{}", destIP,
+ std::to_string(destPort));
requestQueue.emplace_back(std::move(thisReq), std::move(cb));
}
else
{
// If we can't buffer the request then we should let the callback
// handle a 429 Too Many Requests dummy response
- BMCWEB_LOG_ERROR << destIP << ":" << std::to_string(destPort)
- << " request queue full. Dropping request.";
+ BMCWEB_LOG_ERROR("{}:{} request queue full. Dropping request.",
+ destIP, std::to_string(destPort));
Response dummyRes;
dummyRes.result(boost::beast::http::status::too_many_requests);
resHandler(dummyRes);
@@ -801,7 +792,8 @@ class ConnectionPool : public std::enable_shared_from_this<ConnectionPool>
std::shared_ptr<ConnectionPool> self = weakSelf.lock();
if (!self)
{
- BMCWEB_LOG_CRITICAL << self << " Failed to capture connection";
+ BMCWEB_LOG_CRITICAL("{} Failed to capture connection",
+ logPtr(self.get()));
return;
}
@@ -815,10 +807,9 @@ class ConnectionPool : public std::enable_shared_from_this<ConnectionPool>
auto& ret = connections.emplace_back(std::make_shared<ConnectionInfo>(
ioc, id, connPolicy, destIP, destPort, useSSL, newId));
- BMCWEB_LOG_DEBUG << "Added connection "
- << std::to_string(connections.size() - 1)
- << " to pool " << destIP << ":"
- << std::to_string(destPort);
+ BMCWEB_LOG_DEBUG("Added connection {} to pool {}:{}",
+ std::to_string(connections.size() - 1), destIP,
+ std::to_string(destPort));
return ret;
}
@@ -832,8 +823,8 @@ class ConnectionPool : public std::enable_shared_from_this<ConnectionPool>
id(idIn), connPolicy(connPolicyIn), destIP(destIPIn),
destPort(destPortIn), useSSL(useSSLIn)
{
- BMCWEB_LOG_DEBUG << "Initializing connection pool for " << destIP << ":"
- << std::to_string(destPort);
+ BMCWEB_LOG_DEBUG("Initializing connection pool for {}:{}", destIP,
+ std::to_string(destPort));
// Initialize the pool with a single connection
addConnection();
@@ -852,8 +843,8 @@ class HttpClient
// sendDataWithCallback()
static void genericResHandler(const Response& res)
{
- BMCWEB_LOG_DEBUG << "Response handled with return code: "
- << std::to_string(res.resultInt());
+ BMCWEB_LOG_DEBUG("Response handled with return code: {}",
+ std::to_string(res.resultInt()));
}
public:
diff --git a/http/http_connection.hpp b/http/http_connection.hpp
index cb252f96aa..b5d0d2e59e 100644
--- a/http/http_connection.hpp
+++ b/http/http_connection.hpp
@@ -68,8 +68,8 @@ class Connection :
connectionCount++;
- BMCWEB_LOG_DEBUG << this << " Connection open, total "
- << connectionCount;
+ BMCWEB_LOG_DEBUG("{} Connection open, total {}", logPtr(this),
+ connectionCount);
}
~Connection()
@@ -78,8 +78,8 @@ class Connection :
cancelDeadlineTimer();
connectionCount--;
- BMCWEB_LOG_DEBUG << this << " Connection closed, total "
- << connectionCount;
+ BMCWEB_LOG_DEBUG("{} Connection closed, total {}", logPtr(this),
+ connectionCount);
}
Connection(const Connection&) = delete;
@@ -97,9 +97,8 @@ class Connection :
mtlsSession = verifyMtlsUser(req->ipAddress, ctx);
if (mtlsSession)
{
- BMCWEB_LOG_DEBUG
- << this
- << " Generating TLS session: " << mtlsSession->uniqueId;
+ BMCWEB_LOG_DEBUG("{} Generating TLS session: {}", logPtr(this),
+ mtlsSession->uniqueId);
}
}
return true;
@@ -126,7 +125,7 @@ class Connection :
static_cast<unsigned int>(id.length()));
if (ret == 0)
{
- BMCWEB_LOG_ERROR << this << " failed to set SSL id";
+ BMCWEB_LOG_ERROR("{} failed to set SSL id", logPtr(this));
}
}
@@ -143,7 +142,8 @@ class Connection :
{
if (connectionCount >= 100)
{
- BMCWEB_LOG_CRITICAL << this << "Max connection count exceeded.";
+ BMCWEB_LOG_CRITICAL("{}Max connection count exceeded.",
+ logPtr(this));
return;
}
@@ -183,8 +183,8 @@ class Connection :
{
std::string_view selectedProtocol(
std::bit_cast<const char*>(alpn), alpnlen);
- BMCWEB_LOG_DEBUG << "ALPN selected protocol \""
- << selectedProtocol << "\" len: " << alpnlen;
+ BMCWEB_LOG_DEBUG("ALPN selected protocol \"{}\" len: {}",
+ selectedProtocol, alpnlen);
if (selectedProtocol == "h2")
{
auto http2 =
@@ -205,7 +205,7 @@ class Connection :
crow::Request& thisReq = req.emplace(parser->release(), reqEc);
if (reqEc)
{
- BMCWEB_LOG_DEBUG << "Request failed to construct" << reqEc;
+ BMCWEB_LOG_DEBUG("Request failed to construct{}", reqEc.message());
res.result(boost::beast::http::status::bad_request);
completeRequest(res);
return;
@@ -226,11 +226,10 @@ class Connection :
}
}
- BMCWEB_LOG_INFO << "Request: "
- << " " << this << " HTTP/" << thisReq.version() / 10
- << "." << thisReq.version() % 10 << ' '
- << thisReq.methodString() << " " << thisReq.target()
- << " " << thisReq.ipAddress.to_string();
+ BMCWEB_LOG_INFO("Request: {} HTTP/{}.{} {} {} {}", logPtr(this),
+ thisReq.version() / 10, thisReq.version() % 10,
+ thisReq.methodString(), thisReq.target(),
+ thisReq.ipAddress.to_string());
res.isAliveHelper = [this]() -> bool { return isAlive(); };
@@ -248,7 +247,7 @@ class Connection :
req->method()) &&
thisReq.session == nullptr)
{
- BMCWEB_LOG_WARNING << "Authentication failed";
+ BMCWEB_LOG_WARNING("Authentication failed");
forward_unauthorized::sendUnauthorized(
req->url().encoded_path(),
req->getHeaderValue("X-Requested-With"),
@@ -258,7 +257,7 @@ class Connection :
}
#endif // BMCWEB_INSECURE_DISABLE_AUTHX
auto asyncResp = std::make_shared<bmcweb::AsyncResp>();
- BMCWEB_LOG_DEBUG << "Setting completion handler";
+ BMCWEB_LOG_DEBUG("Setting completion handler");
asyncResp->res.setCompleteRequestHandler(
[self(shared_from_this())](crow::Response& thisRes) {
self->completeRequest(thisRes);
@@ -320,9 +319,8 @@ class Connection :
adaptor.next_layer().close();
if (mtlsSession != nullptr)
{
- BMCWEB_LOG_DEBUG
- << this
- << " Removing TLS session: " << mtlsSession->uniqueId;
+ BMCWEB_LOG_DEBUG("{} Removing TLS session: {}", logPtr(this),
+ mtlsSession->uniqueId);
persistent_data::SessionStore::getInstance().removeSession(
mtlsSession);
}
@@ -371,7 +369,7 @@ class Connection :
boost::system::error_code getClientIp(boost::asio::ip::address& ip)
{
boost::system::error_code ec;
- BMCWEB_LOG_DEBUG << "Fetch the client IP address";
+ BMCWEB_LOG_DEBUG("Fetch the client IP address");
boost::asio::ip::tcp::endpoint endpoint =
boost::beast::get_lowest_layer(adaptor).remote_endpoint(ec);
@@ -379,8 +377,8 @@ class Connection :
{
// If remote endpoint fails keep going. "ClientOriginIPAddress"
// will be empty.
- BMCWEB_LOG_ERROR << "Failed to get the client's IP Address. ec : "
- << ec;
+ BMCWEB_LOG_ERROR("Failed to get the client's IP Address. ec : {}",
+ ec);
return ec;
}
ip = endpoint.address();
@@ -390,7 +388,7 @@ class Connection :
private:
void doReadHeaders()
{
- BMCWEB_LOG_DEBUG << this << " doReadHeaders";
+ BMCWEB_LOG_DEBUG("{} doReadHeaders", logPtr(this));
// Clean up any previous Connection.
boost::beast::http::async_read_header(
@@ -398,21 +396,21 @@ class Connection :
[this,
self(shared_from_this())](const boost::system::error_code& ec,
std::size_t bytesTransferred) {
- BMCWEB_LOG_DEBUG << this << " async_read_header "
- << bytesTransferred << " Bytes";
+ BMCWEB_LOG_DEBUG("{} async_read_header {} Bytes", logPtr(this),
+ bytesTransferred);
bool errorWhileReading = false;
if (ec)
{
errorWhileReading = true;
if (ec == boost::beast::http::error::end_of_stream)
{
- BMCWEB_LOG_WARNING
- << this << " Error while reading: " << ec.message();
+ BMCWEB_LOG_WARNING("{} Error while reading: {}",
+ logPtr(this), ec.message());
}
else
{
- BMCWEB_LOG_ERROR
- << this << " Error while reading: " << ec.message();
+ BMCWEB_LOG_ERROR("{} Error while reading: {}", logPtr(this),
+ ec.message());
}
}
else
@@ -431,7 +429,7 @@ class Connection :
if (errorWhileReading)
{
close();
- BMCWEB_LOG_DEBUG << this << " from read(1)";
+ BMCWEB_LOG_DEBUG("{} from read(1)", logPtr(this));
return;
}
@@ -440,7 +438,7 @@ class Connection :
boost::asio::ip::address ip;
if (getClientIp(ip))
{
- BMCWEB_LOG_DEBUG << "Unable to get client IP";
+ BMCWEB_LOG_DEBUG("Unable to get client IP");
}
#ifndef BMCWEB_INSECURE_DISABLE_AUTHX
boost::beast::http::verb method = parser->get().method();
@@ -454,13 +452,13 @@ class Connection :
parser->content_length();
if (contentLength && *contentLength > loggedOutPostBodyLimit)
{
- BMCWEB_LOG_DEBUG << "Content length greater than limit "
- << *contentLength;
+ BMCWEB_LOG_DEBUG("Content length greater than limit {}",
+ *contentLength);
close();
return;
}
- BMCWEB_LOG_DEBUG << "Starting quick deadline";
+ BMCWEB_LOG_DEBUG("Starting quick deadline");
}
#endif // BMCWEB_INSECURE_DISABLE_AUTHX
@@ -476,22 +474,22 @@ class Connection :
void doRead()
{
- BMCWEB_LOG_DEBUG << this << " doRead";
+ BMCWEB_LOG_DEBUG("{} doRead", logPtr(this));
startDeadline();
boost::beast::http::async_read_some(
adaptor, buffer, *parser,
[this,
self(shared_from_this())](const boost::system::error_code& ec,
std::size_t bytesTransferred) {
- BMCWEB_LOG_DEBUG << this << " async_read_some " << bytesTransferred
- << " Bytes";
+ BMCWEB_LOG_DEBUG("{} async_read_some {} Bytes", logPtr(this),
+ bytesTransferred);
if (ec)
{
- BMCWEB_LOG_ERROR << this
- << " Error while reading: " << ec.message();
+ BMCWEB_LOG_ERROR("{} Error while reading: {}", logPtr(this),
+ ec.message());
close();
- BMCWEB_LOG_DEBUG << this << " from read(1)";
+ BMCWEB_LOG_DEBUG("{} from read(1)", logPtr(this));
return;
}
@@ -515,7 +513,7 @@ class Connection :
void doWrite(crow::Response& thisRes)
{
- BMCWEB_LOG_DEBUG << this << " doWrite";
+ BMCWEB_LOG_DEBUG("{} doWrite", logPtr(this));
thisRes.preparePayload();
serializer.emplace(*thisRes.stringResponse);
startDeadline();
@@ -523,25 +521,25 @@ class Connection :
[this, self(shared_from_this())](
const boost::system::error_code& ec,
std::size_t bytesTransferred) {
- BMCWEB_LOG_DEBUG << this << " async_write " << bytesTransferred
- << " bytes";
+ BMCWEB_LOG_DEBUG("{} async_write {} bytes", logPtr(this),
+ bytesTransferred);
cancelDeadlineTimer();
if (ec)
{
- BMCWEB_LOG_DEBUG << this << " from write(2)";
+ BMCWEB_LOG_DEBUG("{} from write(2)", logPtr(this));
return;
}
if (!keepAlive)
{
close();
- BMCWEB_LOG_DEBUG << this << " from write(1)";
+ BMCWEB_LOG_DEBUG("{} from write(1)", logPtr(this));
return;
}
serializer.reset();
- BMCWEB_LOG_DEBUG << this << " Clearing response";
+ BMCWEB_LOG_DEBUG("{} Clearing response", logPtr(this));
res.clear();
parser.emplace(std::piecewise_construct, std::make_tuple());
parser->body_limit(httpReqBodyLimit); // reset body limit for
@@ -580,7 +578,8 @@ class Connection :
weakSelf.lock();
if (!self)
{
- BMCWEB_LOG_CRITICAL << self << " Failed to capture connection";
+ BMCWEB_LOG_CRITICAL("{} Failed to capture connection",
+ logPtr(self.get()));
return;
}
@@ -593,16 +592,18 @@ class Connection :
}
if (ec)
{
- BMCWEB_LOG_CRITICAL << self << " timer failed " << ec;
+ BMCWEB_LOG_CRITICAL("{} timer failed {}", logPtr(self.get()),
+ ec);
}
- BMCWEB_LOG_WARNING << self << "Connection timed out, closing";
+ BMCWEB_LOG_WARNING("{}Connection timed out, closing",
+ logPtr(self.get()));
self->close();
});
timerStarted = true;
- BMCWEB_LOG_DEBUG << this << " timer started";
+ BMCWEB_LOG_DEBUG("{} timer started", logPtr(this));
}
Adaptor adaptor;
diff --git a/http/http_response.hpp b/http/http_response.hpp
index 93c90d7d09..c4f9366ed3 100644
--- a/http/http_response.hpp
+++ b/http/http_response.hpp
@@ -66,8 +66,8 @@ struct Response
Response& operator=(Response&& r) noexcept
{
- BMCWEB_LOG_DEBUG << "Moving response containers; this: " << this
- << "; other: " << &r;
+ BMCWEB_LOG_DEBUG("Moving response containers; this: {}; other: {}",
+ logPtr(this), logPtr(&r));
if (this == &r)
{
return *this;
@@ -167,9 +167,9 @@ struct Response
stringResponse->result() == status::no_content ||
stringResponse->result() == status::not_modified))
{
- BMCWEB_LOG_CRITICAL
- << this
- << " Response content provided but code was no-content or not_modified, which aren't allowed to have a body";
+ BMCWEB_LOG_CRITICAL(
+ "{} Response content provided but code was no-content or not_modified, which aren't allowed to have a body",
+ logPtr(this));
pSize = 0;
body().clear();
}
@@ -179,7 +179,7 @@ struct Response
void clear()
{
- BMCWEB_LOG_DEBUG << this << " Clearing response containers";
+ BMCWEB_LOG_DEBUG("{} Clearing response containers", logPtr(this));
stringResponse.emplace(response_type{});
jsonValue = nullptr;
completed = false;
@@ -216,14 +216,14 @@ struct Response
}
if (completed)
{
- BMCWEB_LOG_ERROR << this << " Response was ended twice";
+ BMCWEB_LOG_ERROR("{} Response was ended twice", logPtr(this));
return;
}
completed = true;
- BMCWEB_LOG_DEBUG << this << " calling completion handler";
+ BMCWEB_LOG_DEBUG("{} calling completion handler", logPtr(this));
if (completeRequestHandler)
{
- BMCWEB_LOG_DEBUG << this << " completion handler was valid";
+ BMCWEB_LOG_DEBUG("{} completion handler was valid", logPtr(this));
completeRequestHandler(*this);
}
}
@@ -235,7 +235,7 @@ struct Response
void setCompleteRequestHandler(std::function<void(Response&)>&& handler)
{
- BMCWEB_LOG_DEBUG << this << " setting completion handler";
+ BMCWEB_LOG_DEBUG("{} setting completion handler", logPtr(this));
completeRequestHandler = std::move(handler);
// Now that we have a new completion handler attached, we're no longer
@@ -245,8 +245,8 @@ struct Response
std::function<void(Response&)> releaseCompleteRequestHandler()
{
- BMCWEB_LOG_DEBUG << this << " releasing completion handler"
- << static_cast<bool>(completeRequestHandler);
+ BMCWEB_LOG_DEBUG("{} releasing completion handler{}", logPtr(this),
+ static_cast<bool>(completeRequestHandler));
std::function<void(Response&)> ret = completeRequestHandler;
completeRequestHandler = nullptr;
completed = true;
diff --git a/http/http_server.hpp b/http/http_server.hpp
index 91de8db37d..dbb95b42dd 100644
--- a/http/http_server.hpp
+++ b/http/http_server.hpp
@@ -89,8 +89,8 @@ class Server
return dateStr;
};
- BMCWEB_LOG_INFO << "bmcweb server is running, local endpoint "
- << acceptor->local_endpoint().address().to_string();
+ BMCWEB_LOG_INFO("bmcweb server is running, local endpoint {}",
+ acceptor->local_endpoint().address().to_string());
startAsyncWaitForSignal();
doAccept();
}
@@ -114,7 +114,7 @@ class Server
fs::create_directories(certPath);
}
fs::path certFile = certPath / "server.pem";
- BMCWEB_LOG_INFO << "Building SSL Context file=" << certFile.string();
+ BMCWEB_LOG_INFO("Building SSL Context file={}", certFile.string());
std::string sslPemFile(certFile);
ensuressl::ensureOpensslKeyPresentAndValid(sslPemFile);
std::shared_ptr<boost::asio::ssl::context> sslContext =
@@ -130,21 +130,21 @@ class Server
[this](const boost::system::error_code& ec, int signalNo) {
if (ec)
{
- BMCWEB_LOG_INFO << "Error in signal handler" << ec.message();
+ BMCWEB_LOG_INFO("Error in signal handler{}", ec.message());
}
else
{
if (signalNo == SIGHUP)
{
- BMCWEB_LOG_INFO << "Receivied reload signal";
+ BMCWEB_LOG_INFO("Receivied reload signal");
loadCertificate();
boost::system::error_code ec2;
acceptor->cancel(ec2);
if (ec2)
{
- BMCWEB_LOG_ERROR
- << "Error while canceling async operations:"
- << ec2.message();
+ BMCWEB_LOG_ERROR(
+ "Error while canceling async operations:{}",
+ ec2.message());
}
startAsyncWaitForSignal();
}
diff --git a/http/logging.hpp b/http/logging.hpp
index 368548f9c0..bf5e42eb79 100644
--- a/http/logging.hpp
+++ b/http/logging.hpp
@@ -2,16 +2,119 @@
#include "bmcweb_config.h"
-#include <algorithm>
-#include <array>
-#include <cstdio>
-#include <cstdlib>
-#include <ctime>
-#include <filesystem>
+#include <boost/system/error_code.hpp>
+#include <boost/url/pct_string_view.hpp>
+#include <boost/url/string_view.hpp>
+#include <boost/url/url.hpp>
+#include <nlohmann/json.hpp>
+
+#include <bit>
+#include <format>
#include <iostream>
-#include <sstream>
-#include <string>
+#include <source_location>
#include <string_view>
+#include <system_error>
+
+// Clang-tidy would rather these be static, but using static causes the template
+// specialization to not function. Ignore the warning.
+// NOLINTBEGIN(readability-convert-member-functions-to-static, cert-dcl58-cpp)
+template <>
+struct std::formatter<boost::system::error_code>
+{
+ constexpr auto parse(std::format_parse_context& ctx)
+ {
+ return ctx.begin();
+ }
+
+ auto format(const boost::system::error_code& ec, auto& ctx) const
+ {
+ return std::format_to(ctx.out(), "{}", ec.what());
+ }
+};
+
+template <>
+struct std::formatter<boost::urls::pct_string_view>
+{
+ constexpr auto parse(std::format_parse_context& ctx)
+ {
+ return ctx.begin();
+ }
+ auto format(const boost::urls::pct_string_view& msg, auto& ctx) const
+ {
+ return std::format_to(ctx.out(), "{}",
+ std::string_view(msg.data(), msg.size()));
+ }
+};
+
+template <>
+struct std::formatter<boost::urls::url>
+{
+ constexpr auto parse(std::format_parse_context& ctx)
+ {
+ return ctx.begin();
+ }
+ auto format(const boost::urls::url& msg, auto& ctx) const
+ {
+ return std::format_to(ctx.out(), "{}", std::string_view(msg.buffer()));
+ }
+};
+
+template <>
+struct std::formatter<boost::core::string_view>
+{
+ constexpr auto parse(std::format_parse_context& ctx)
+ {
+ return ctx.begin();
+ }
+ auto format(const boost::core::string_view& msg, auto& ctx) const
+ {
+ return std::format_to(ctx.out(), "{}", std::string_view(msg));
+ }
+};
+
+template <>
+struct std::formatter<void*>
+{
+ constexpr auto parse(std::format_parse_context& ctx)
+ {
+ return ctx.begin();
+ }
+ auto format(const void*& ptr, auto& ctx) const
+ {
+ return std::format_to(ctx.out(), "{}",
+ std::to_string(std::bit_cast<size_t>(ptr)));
+ }
+};
+
+template <>
+struct std::formatter<nlohmann::json::json_pointer>
+{
+ constexpr auto parse(std::format_parse_context& ctx)
+ {
+ return ctx.begin();
+ }
+ auto format(const nlohmann::json::json_pointer& ptr, auto& ctx) const
+ {
+ return std::format_to(ctx.out(), "{}", ptr.to_string());
+ }
+};
+
+template <>
+struct std::formatter<nlohmann::json>
+{
+ static constexpr auto parse(std::format_parse_context& ctx)
+ {
+ return ctx.begin();
+ }
+ auto format(const nlohmann::json& json, auto& ctx) const
+ {
+ return std::format_to(
+ ctx.out(), "{}",
+ json.dump(-1, ' ', false,
+ nlohmann::json::error_handler_t::replace));
+ }
+};
+// NOLINTEND(readability-convert-member-functions-to-static, cert-dcl58-cpp)
namespace crow
{
@@ -51,103 +154,83 @@ constexpr crow::LogLevel getLogLevelFromName(std::string_view name)
constexpr crow::LogLevel bmcwebCurrentLoggingLevel =
getLogLevelFromName(bmcwebLoggingLevel);
-class Logger
+struct FormatString
{
- private:
- //
- static std::string timestamp()
- {
- std::string date;
- date.resize(32, '\0');
- time_t t = time(nullptr);
-
- tm myTm{};
-
- gmtime_r(&t, &myTm);
-
- size_t sz = strftime(date.data(), date.size(), "%Y-%m-%d %H:%M:%S",
- &myTm);
- date.resize(sz);
- return date;
- }
-
- public:
- Logger([[maybe_unused]] const std::string& prefix,
- [[maybe_unused]] const std::string& filename,
- [[maybe_unused]] const size_t line)
- {
- stringstream << "(" << timestamp() << ") [" << prefix << " "
- << std::filesystem::path(filename).filename() << ":"
- << line << "] ";
- }
- ~Logger()
- {
- stringstream << std::endl;
- std::cerr << stringstream.str();
- }
-
- Logger(const Logger&) = delete;
- Logger(Logger&&) = delete;
- Logger& operator=(const Logger&) = delete;
- Logger& operator=(const Logger&&) = delete;
-
- //
- template <typename T>
- Logger& operator<<([[maybe_unused]] const T& value)
- {
- // Somewhere in the code we're implicitly casting an array to a
- // pointer in logging code. It's non-trivial to find,
- // so disable the check here for now
- // NOLINTNEXTLINE(cppcoreguidelines-pro-bounds-array-to-pointer-decay)
- stringstream << value;
- return *this;
- }
+ std::string_view str;
+ std::source_location loc;
+
+ // NOLINTNEXTLINE(google-explicit-constructor)
+ FormatString(const char* strIn, const std::source_location& locIn =
+ std::source_location::current()) :
+ str(strIn),
+ loc(locIn)
+ {}
+};
- constexpr static LogLevel getCurrentLogLevel()
- {
- return bmcwebCurrentLoggingLevel;
- }
+template <typename T>
+const void* logPtr(T p)
+{
+ static_assert(std::is_pointer<T>::value,
+ "Can't use logPtr without pointer");
+ return std::bit_cast<const void*>(p);
+}
- constexpr static bool isLoggingEnabled()
+template <LogLevel level>
+inline void vlog(const FormatString& format, std::format_args&& args)
+{
+ if constexpr (bmcwebCurrentLoggingLevel > level)
{
- return getCurrentLogLevel() >= crow::LogLevel::Debug;
+ return;
}
-
- constexpr static bool checkLoggingLevel(const LogLevel level)
+ constexpr size_t stringIndex = static_cast<size_t>(level);
+ static_assert(stringIndex < mapLogLevelFromName.size(),
+ "Missing string for level");
+ constexpr std::string_view levelString =
+ mapLogLevelFromName[stringIndex].first;
+ std::string_view filename = format.loc.file_name();
+ if (filename.starts_with("../"))
{
- return isLoggingEnabled() && (getCurrentLogLevel() <= level);
+ filename = filename.substr(3);
}
-
- private:
- //
- std::ostringstream stringstream;
-};
+ std::cout << std::format("[{} {}:{}] ", levelString, filename,
+ format.loc.line());
+ std::cout << std::vformat(format.str, args);
+ std::putc('\n', stdout);
+}
} // namespace crow
-// Disable clang-tidy warnings about unused macros.
-// NOLINTBEGIN(cppcoreguidelines-macro-usage, clang-diagnostic-unused-macros)
-
-// The logging functions currently use macros. Now that we have c++20, ideally
-// they'd use source_location with fixed functions, but for the moment, disable
-// the check.
-#define BMCWEB_LOG_CRITICAL \
- if constexpr (crow::Logger::checkLoggingLevel(crow::LogLevel::Critical)) \
- crow::Logger("CRITICAL", __FILE__, __LINE__)
-
-#define BMCWEB_LOG_ERROR \
- if constexpr (crow::Logger::checkLoggingLevel(crow::LogLevel::Error)) \
- crow::Logger("ERROR", __FILE__, __LINE__)
+template <typename... Args>
+inline void BMCWEB_LOG_CRITICAL(const crow::FormatString& format,
+ Args&&... args)
+{
+ crow::vlog<crow::LogLevel::Critical>(
+ format, std::make_format_args(std::forward<Args>(args)...));
+}
-#define BMCWEB_LOG_WARNING \
- if constexpr (crow::Logger::checkLoggingLevel(crow::LogLevel::Warning)) \
- crow::Logger("WARNING", __FILE__, __LINE__)
+template <typename... Args>
+inline void BMCWEB_LOG_ERROR(const crow::FormatString& format, Args&&... args)
+{
+ crow::vlog<crow::LogLevel::Error>(
+ format, std::make_format_args(std::forward<Args>(args)...));
+}
-#define BMCWEB_LOG_INFO \
- if constexpr (crow::Logger::checkLoggingLevel(crow::LogLevel::Info)) \
- crow::Logger("INFO", __FILE__, __LINE__)
+template <typename... Args>
+inline void BMCWEB_LOG_WARNING(const crow::FormatString& format, Args&&... args)
+{
+ crow::vlog<crow::LogLevel::Warning>(
+ format, std::make_format_args(std::forward<Args>(args)...));
+}
-#define BMCWEB_LOG_DEBUG \
- if constexpr (crow::Logger::checkLoggingLevel(crow::LogLevel::Debug)) \
- crow::Logger("DEBUG", __FILE__, __LINE__)
+template <typename... Args>
+inline void BMCWEB_LOG_INFO(const crow::FormatString& format, Args&&... args)
+{
+ crow::vlog<crow::LogLevel::Info>(
+ format, std::make_format_args(std::forward<Args>(args)...));
+}
-// NOLINTEND(cppcoreguidelines-macro-usage, clang-diagnostic-unused-macros)
+template <typename... Args>
+inline void BMCWEB_LOG_DEBUG(const crow::FormatString& format, Args&&... args)
+{
+ crow::vlog<crow::LogLevel::Debug>(
+ format, std::make_format_args(std::forward<Args>(args)...));
+}
diff --git a/http/mutual_tls.hpp b/http/mutual_tls.hpp
index f8af0f6f57..9cd4cde01c 100644
--- a/http/mutual_tls.hpp
+++ b/http/mutual_tls.hpp
@@ -21,14 +21,14 @@ inline std::shared_ptr<persistent_data::UserSession>
.getAuthMethodsConfig()
.tls)
{
- BMCWEB_LOG_DEBUG << "TLS auth_config is disabled";
+ BMCWEB_LOG_DEBUG("TLS auth_config is disabled");
return nullptr;
}
X509_STORE_CTX* cts = ctx.native_handle();
if (cts == nullptr)
{
- BMCWEB_LOG_DEBUG << "Cannot get native TLS handle.";
+ BMCWEB_LOG_DEBUG("Cannot get native TLS handle.");
return nullptr;
}
@@ -36,7 +36,7 @@ inline std::shared_ptr<persistent_data::UserSession>
X509* peerCert = X509_STORE_CTX_get_current_cert(ctx.native_handle());
if (peerCert == nullptr)
{
- BMCWEB_LOG_DEBUG << "Cannot get current TLS certificate.";
+ BMCWEB_LOG_DEBUG("Cannot get current TLS certificate.");
return nullptr;
}
@@ -44,7 +44,7 @@ inline std::shared_ptr<persistent_data::UserSession>
int ctxError = X509_STORE_CTX_get_error(cts);
if (ctxError != X509_V_OK)
{
- BMCWEB_LOG_INFO << "Last TLS error is: " << ctxError;
+ BMCWEB_LOG_INFO("Last TLS error is: {}", ctxError);
return nullptr;
}
// Check that we have reached final certificate in chain
@@ -52,12 +52,13 @@ inline std::shared_ptr<persistent_data::UserSession>
if (depth != 0)
{
- BMCWEB_LOG_DEBUG << "Certificate verification in progress (depth "
- << depth << "), waiting to reach final depth";
+ BMCWEB_LOG_DEBUG(
+ "Certificate verification in progress (depth {}), waiting to reach final depth",
+ depth);
return nullptr;
}
- BMCWEB_LOG_DEBUG << "Certificate verification of final depth";
+ BMCWEB_LOG_DEBUG("Certificate verification of final depth");
// Verify KeyUsage
bool isKeyUsageDigitalSignature = false;
@@ -68,7 +69,7 @@ inline std::shared_ptr<persistent_data::UserSession>
if ((usage == nullptr) || (usage->data == nullptr))
{
- BMCWEB_LOG_DEBUG << "TLS usage is null";
+ BMCWEB_LOG_DEBUG("TLS usage is null");
return nullptr;
}
@@ -88,9 +89,9 @@ inline std::shared_ptr<persistent_data::UserSession>
if (!isKeyUsageDigitalSignature || !isKeyUsageKeyAgreement)
{
- BMCWEB_LOG_DEBUG << "Certificate ExtendedKeyUsage does "
- "not allow provided certificate to "
- "be used for user authentication";
+ BMCWEB_LOG_DEBUG("Certificate ExtendedKeyUsage does "
+ "not allow provided certificate to "
+ "be used for user authentication");
return nullptr;
}
@@ -101,7 +102,7 @@ inline std::shared_ptr<persistent_data::UserSession>
if (extUsage == nullptr)
{
- BMCWEB_LOG_DEBUG << "TLS extUsage is null";
+ BMCWEB_LOG_DEBUG("TLS extUsage is null");
return nullptr;
}
@@ -121,9 +122,9 @@ inline std::shared_ptr<persistent_data::UserSession>
// Certificate has to have proper key usages set
if (!isExKeyUsageClientAuth)
{
- BMCWEB_LOG_DEBUG << "Certificate ExtendedKeyUsage does "
- "not allow provided certificate to "
- "be used for user authentication";
+ BMCWEB_LOG_DEBUG("Certificate ExtendedKeyUsage does "
+ "not allow provided certificate to "
+ "be used for user authentication");
return nullptr;
}
std::string sslUser;
@@ -136,14 +137,14 @@ inline std::shared_ptr<persistent_data::UserSession>
if (status == -1)
{
- BMCWEB_LOG_DEBUG << "TLS cannot get username to create session";
+ BMCWEB_LOG_DEBUG("TLS cannot get username to create session");
return nullptr;
}
size_t lastChar = sslUser.find('\0');
if (lastChar == std::string::npos || lastChar == 0)
{
- BMCWEB_LOG_DEBUG << "Invalid TLS user name";
+ BMCWEB_LOG_DEBUG("Invalid TLS user name");
return nullptr;
}
sslUser.resize(lastChar);
diff --git a/http/nghttp2_adapters.hpp b/http/nghttp2_adapters.hpp
index 3c1f549e85..9f4dc911d7 100644
--- a/http/nghttp2_adapters.hpp
+++ b/http/nghttp2_adapters.hpp
@@ -99,7 +99,7 @@ struct nghttp2_session
{
if (nghttp2_session_server_new(&ptr, callbacks.get(), nullptr) != 0)
{
- BMCWEB_LOG_ERROR << "nghttp2_session_server_new failed";
+ BMCWEB_LOG_ERROR("nghttp2_session_server_new failed");
return;
}
}
diff --git a/http/parsing.hpp b/http/parsing.hpp
index f16d8903da..839b51cae1 100644
--- a/http/parsing.hpp
+++ b/http/parsing.hpp
@@ -24,7 +24,7 @@ inline JsonParseResult parseRequestAsJson(const crow::Request& req,
if (!boost::iequals(contentType, "application/json") &&
!boost::iequals(contentType, "application/json; charset=utf-8"))
{
- BMCWEB_LOG_WARNING << "Failed to parse content type on request";
+ BMCWEB_LOG_WARNING("Failed to parse content type on request");
#ifndef BMCWEB_INSECURE_IGNORE_CONTENT_TYPE
return JsonParseResult::BadContentType;
#endif
@@ -32,7 +32,7 @@ inline JsonParseResult parseRequestAsJson(const crow::Request& req,
jsonOut = nlohmann::json::parse(req.body(), nullptr, false);
if (jsonOut.is_discarded())
{
- BMCWEB_LOG_WARNING << "Failed to parse json in request";
+ BMCWEB_LOG_WARNING("Failed to parse json in request");
return JsonParseResult::BadJsonData;
}
diff --git a/http/routing.hpp b/http/routing.hpp
index 1b2c131576..49a51f18e7 100644
--- a/http/routing.hpp
+++ b/http/routing.hpp
@@ -307,18 +307,20 @@ class Trie
{
if (n->paramChildrens[i] != 0U)
{
- BMCWEB_LOG_DEBUG << std::string(
- 2U * level, ' ') /*<< "("<<n->paramChildrens[i]<<") "*/;
+ BMCWEB_LOG_DEBUG(
+ "{}({}{}",
+ std::string(2U * level,
+ ' ') /*, n->paramChildrens[i], ") "*/);
switch (static_cast<ParamType>(i))
{
case ParamType::STRING:
- BMCWEB_LOG_DEBUG << "<str>";
+ BMCWEB_LOG_DEBUG("<str>");
break;
case ParamType::PATH:
- BMCWEB_LOG_DEBUG << "<path>";
+ BMCWEB_LOG_DEBUG("<path>");
break;
case ParamType::MAX:
- BMCWEB_LOG_DEBUG << "<ERROR>";
+ BMCWEB_LOG_DEBUG("<ERROR>");
break;
}
@@ -327,9 +329,9 @@ class Trie
}
for (const Node::ChildMap::value_type& kv : n->children)
{
- BMCWEB_LOG_DEBUG
- << std::string(2U * level, ' ') /*<< "(" << kv.second << ") "*/
- << kv.first;
+ BMCWEB_LOG_DEBUG("{}({}{}{}",
+ std::string(2U * level, ' ') /*, kv.second, ") "*/,
+ kv.first);
debugNodePrint(&nodes[kv.second], level + 1);
}
}
@@ -498,7 +500,7 @@ class Router
FindRoute route;
if (index >= perMethods.size())
{
- BMCWEB_LOG_CRITICAL << "Bad index???";
+ BMCWEB_LOG_CRITICAL("Bad index???");
return route;
}
const PerMethod& perMethod = perMethods[index];
@@ -574,8 +576,7 @@ class Router
unsigned ruleIndex = found.first;
if (ruleIndex == 0U)
{
- BMCWEB_LOG_DEBUG << "Cannot match rules "
- << req.url().encoded_path();
+ BMCWEB_LOG_DEBUG("Cannot match rules {}", req.url().encoded_path());
asyncResp->res.result(boost::beast::http::status::not_found);
return;
}
@@ -589,16 +590,16 @@ class Router
size_t methods = rule.getMethods();
if ((methods & (1U << static_cast<size_t>(*verb))) == 0)
{
- BMCWEB_LOG_DEBUG
- << "Rule found but method mismatch: "
- << req.url().encoded_path() << " with " << req.methodString()
- << "(" << static_cast<uint32_t>(*verb) << ") / " << methods;
+ BMCWEB_LOG_DEBUG(
+ "Rule found but method mismatch: {} with {}({}) / {}",
+ req.url().encoded_path(), req.methodString(),
+ static_cast<uint32_t>(*verb), methods);
asyncResp->res.result(boost::beast::http::status::not_found);
return;
}
- BMCWEB_LOG_DEBUG << "Matched rule (upgrade) '" << rule.rule << "' "
- << static_cast<uint32_t>(*verb) << " / " << methods;
+ BMCWEB_LOG_DEBUG("Matched rule (upgrade) '{}' {} / {}", rule.rule,
+ static_cast<uint32_t>(*verb), methods);
// TODO(ed) This should be able to use std::bind_front, but it doesn't
// appear to work with the std::move on adaptor.
@@ -665,9 +666,8 @@ class Router
BaseRule& rule = *foundRoute.route.rule;
std::vector<std::string> params = std::move(foundRoute.route.params);
- BMCWEB_LOG_DEBUG << "Matched rule '" << rule.rule << "' "
- << static_cast<uint32_t>(*verb) << " / "
- << rule.getMethods();
+ BMCWEB_LOG_DEBUG("Matched rule '{}' {} / {}", rule.rule,
+ static_cast<uint32_t>(*verb), rule.getMethods());
if (req.session == nullptr)
{
@@ -684,8 +684,9 @@ class Router
{
for (size_t i = 0; i < perMethods.size(); i++)
{
- BMCWEB_LOG_DEBUG << boost::beast::http::to_string(
- static_cast<boost::beast::http::verb>(i));
+ BMCWEB_LOG_DEBUG("{}",
+ boost::beast::http::to_string(
+ static_cast<boost::beast::http::verb>(i)));
perMethods[i].trie.debugPrint();
}
}
diff --git a/http/routing/websocketrule.hpp b/http/routing/websocketrule.hpp
index c8f706db51..5e558f2edb 100644
--- a/http/routing/websocketrule.hpp
+++ b/http/routing/websocketrule.hpp
@@ -32,7 +32,7 @@ class WebSocketRule : public BaseRule
const std::shared_ptr<bmcweb::AsyncResp>& /*asyncResp*/,
boost::asio::ip::tcp::socket&& adaptor) override
{
- BMCWEB_LOG_DEBUG << "Websocket handles upgrade";
+ BMCWEB_LOG_DEBUG("Websocket handles upgrade");
std::shared_ptr<
crow::websocket::ConnectionImpl<boost::asio::ip::tcp::socket>>
myConnection = std::make_shared<
@@ -47,7 +47,7 @@ class WebSocketRule : public BaseRule
boost::beast::ssl_stream<boost::asio::ip::tcp::socket>&&
adaptor) override
{
- BMCWEB_LOG_DEBUG << "Websocket handles upgrade";
+ BMCWEB_LOG_DEBUG("Websocket handles upgrade");
std::shared_ptr<crow::websocket::ConnectionImpl<
boost::beast::ssl_stream<boost::asio::ip::tcp::socket>>>
myConnection = std::make_shared<crow::websocket::ConnectionImpl<
diff --git a/http/server_sent_event.hpp b/http/server_sent_event.hpp
index 02af0b7523..773394836f 100644
--- a/http/server_sent_event.hpp
+++ b/http/server_sent_event.hpp
@@ -49,7 +49,7 @@ class ConnectionImpl : public Connection
timer(ioc), openHandler(std::move(openHandlerIn)),
closeHandler(std::move(closeHandlerIn))
{
- BMCWEB_LOG_DEBUG << "SseConnectionImpl: SSE constructor " << this;
+ BMCWEB_LOG_DEBUG("SseConnectionImpl: SSE constructor {}", logPtr(this));
}
ConnectionImpl(const ConnectionImpl&) = delete;
@@ -59,7 +59,7 @@ class ConnectionImpl : public Connection
~ConnectionImpl() override
{
- BMCWEB_LOG_DEBUG << "SSE ConnectionImpl: SSE destructor " << this;
+ BMCWEB_LOG_DEBUG("SSE ConnectionImpl: SSE destructor {}", logPtr(this));
}
boost::asio::io_context& getIoContext() override
@@ -72,7 +72,7 @@ class ConnectionImpl : public Connection
{
if (!openHandler)
{
- BMCWEB_LOG_CRITICAL << "No open handler???";
+ BMCWEB_LOG_CRITICAL("No open handler???");
return;
}
openHandler(*this);
@@ -85,13 +85,13 @@ class ConnectionImpl : public Connection
{
closeHandler(*this);
}
- BMCWEB_LOG_DEBUG << "Closing SSE connection " << this << " - " << msg;
+ BMCWEB_LOG_DEBUG("Closing SSE connection {} - {}", logPtr(this), msg);
boost::beast::get_lowest_layer(adaptor).close();
}
void sendSSEHeader()
{
- BMCWEB_LOG_DEBUG << "Starting SSE connection";
+ BMCWEB_LOG_DEBUG("Starting SSE connection");
using BodyType = boost::beast::http::buffer_body;
boost::beast::http::response<BodyType> res(
boost::beast::http::status::ok, 11, BodyType{});
@@ -113,11 +113,11 @@ class ConnectionImpl : public Connection
serializer.reset();
if (ec)
{
- BMCWEB_LOG_ERROR << "Error sending header" << ec;
+ BMCWEB_LOG_ERROR("Error sending header{}", ec);
close("async_write_header failed");
return;
}
- BMCWEB_LOG_DEBUG << "SSE header sent - Connection established";
+ BMCWEB_LOG_DEBUG("SSE header sent - Connection established");
serializer.reset();
@@ -138,7 +138,7 @@ class ConnectionImpl : public Connection
}
if (ec)
{
- BMCWEB_LOG_ERROR << "Read error: " << ec;
+ BMCWEB_LOG_ERROR("Read error: {}", ec);
}
close("Close SSE connection");
@@ -152,7 +152,7 @@ class ConnectionImpl : public Connection
}
if (inputBuffer.size() == 0)
{
- BMCWEB_LOG_DEBUG << "inputBuffer is empty... Bailing out";
+ BMCWEB_LOG_DEBUG("inputBuffer is empty... Bailing out");
return;
}
startTimeout();
@@ -179,19 +179,19 @@ class ConnectionImpl : public Connection
if (ec == boost::asio::error::eof)
{
- BMCWEB_LOG_ERROR << "async_write_some() SSE stream closed";
+ BMCWEB_LOG_ERROR("async_write_some() SSE stream closed");
close("SSE stream closed");
return;
}
if (ec)
{
- BMCWEB_LOG_ERROR << "async_write_some() failed: " << ec.message();
+ BMCWEB_LOG_ERROR("async_write_some() failed: {}", ec.message());
close("async_write_some failed");
return;
}
- BMCWEB_LOG_DEBUG << "async_write_some() bytes transferred: "
- << bytesTransferred;
+ BMCWEB_LOG_DEBUG("async_write_some() bytes transferred: {}",
+ bytesTransferred);
doWrite();
}
@@ -200,7 +200,7 @@ class ConnectionImpl : public Connection
{
if (msg.empty())
{
- BMCWEB_LOG_DEBUG << "Empty data, bailing out.";
+ BMCWEB_LOG_DEBUG("Empty data, bailing out.");
return;
}
@@ -249,22 +249,24 @@ class ConnectionImpl : public Connection
std::shared_ptr<Connection> self = weakSelf.lock();
if (!self)
{
- BMCWEB_LOG_CRITICAL << self << " Failed to capture connection";
+ BMCWEB_LOG_CRITICAL("{} Failed to capture connection",
+ logPtr(self.get()));
return;
}
if (ec == boost::asio::error::operation_aborted)
{
- BMCWEB_LOG_DEBUG << "operation aborted";
+ BMCWEB_LOG_DEBUG("operation aborted");
// Canceled wait means the path succeeeded.
return;
}
if (ec)
{
- BMCWEB_LOG_CRITICAL << self << " timer failed " << ec;
+ BMCWEB_LOG_CRITICAL("{} timer failed {}", logPtr(self.get()), ec);
}
- BMCWEB_LOG_WARNING << self << "Connection timed out, closing";
+ BMCWEB_LOG_WARNING("{}Connection timed out, closing",
+ logPtr(self.get()));
self->close("closing connection");
}
diff --git a/http/websocket.hpp b/http/websocket.hpp
index 434a0c1944..216c4131db 100644
--- a/http/websocket.hpp
+++ b/http/websocket.hpp
@@ -75,7 +75,7 @@ class ConnectionImpl : public Connection
/* Turn on the timeouts on websocket stream to server role */
ws.set_option(boost::beast::websocket::stream_base::timeout::suggested(
boost::beast::role_type::server));
- BMCWEB_LOG_DEBUG << "Creating new connection " << this;
+ BMCWEB_LOG_DEBUG("Creating new connection {}", logPtr(this));
}
boost::asio::io_context& getIoContext() override
@@ -86,7 +86,7 @@ class ConnectionImpl : public Connection
void start()
{
- BMCWEB_LOG_DEBUG << "starting connection " << this;
+ BMCWEB_LOG_DEBUG("starting connection {}", logPtr(this));
using bf = boost::beast::http::field;
@@ -104,7 +104,7 @@ class ConnectionImpl : public Connection
!crow::utility::constantTimeStringCompare(
protocol, session->csrfToken))
{
- BMCWEB_LOG_ERROR << "Websocket CSRF error";
+ BMCWEB_LOG_ERROR("Websocket CSRF error");
m.result(boost::beast::http::status::unauthorized);
return;
}
@@ -131,7 +131,7 @@ class ConnectionImpl : public Connection
const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_ERROR << "Error in ws.async_accept " << ec;
+ BMCWEB_LOG_ERROR("Error in ws.async_accept {}", ec);
return;
}
acceptDone();
@@ -151,8 +151,8 @@ class ConnectionImpl : public Connection
{
if (doingWrite)
{
- BMCWEB_LOG_CRITICAL
- << "Cannot mix sendEx usage with sendBinary or sendText";
+ BMCWEB_LOG_CRITICAL(
+ "Cannot mix sendEx usage with sendBinary or sendText");
onDone();
return;
}
@@ -169,7 +169,7 @@ class ConnectionImpl : public Connection
if (ec)
{
- BMCWEB_LOG_ERROR << "Error in ws.async_write " << ec;
+ BMCWEB_LOG_ERROR("Error in ws.async_write {}", ec);
self->close("write error");
}
});
@@ -210,7 +210,7 @@ class ConnectionImpl : public Connection
}
if (ec)
{
- BMCWEB_LOG_ERROR << "Error closing websocket " << ec;
+ BMCWEB_LOG_ERROR("Error closing websocket {}", ec);
return;
}
});
@@ -223,7 +223,7 @@ class ConnectionImpl : public Connection
void acceptDone()
{
- BMCWEB_LOG_DEBUG << "Websocket accepted connection";
+ BMCWEB_LOG_DEBUG("Websocket accepted connection");
if (openHandler)
{
@@ -264,7 +264,7 @@ class ConnectionImpl : public Connection
{
if (ec != boost::beast::websocket::error::closed)
{
- BMCWEB_LOG_ERROR << "doRead error " << ec;
+ BMCWEB_LOG_ERROR("doRead error {}", ec);
}
if (closeHandler)
{
@@ -306,7 +306,7 @@ class ConnectionImpl : public Connection
}
if (ec)
{
- BMCWEB_LOG_ERROR << "Error in ws.async_write " << ec;
+ BMCWEB_LOG_ERROR("Error in ws.async_write {}", ec);
return;
}
doWrite();
diff --git a/include/async_resolve.hpp b/include/async_resolve.hpp
index 2bf511299d..3f31e1383f 100644
--- a/include/async_resolve.hpp
+++ b/include/async_resolve.hpp
@@ -20,14 +20,14 @@ inline bool endpointFromResolveTuple(const std::vector<uint8_t>& ipAddress,
{
if (ipAddress.size() == 4) // ipv4 address
{
- BMCWEB_LOG_DEBUG << "ipv4 address";
+ BMCWEB_LOG_DEBUG("ipv4 address");
boost::asio::ip::address_v4 ipv4Addr(
{ipAddress[0], ipAddress[1], ipAddress[2], ipAddress[3]});
endpoint.address(ipv4Addr);
}
else if (ipAddress.size() == 16) // ipv6 address
{
- BMCWEB_LOG_DEBUG << "ipv6 address";
+ BMCWEB_LOG_DEBUG("ipv6 address");
boost::asio::ip::address_v6 ipv6Addr(
{ipAddress[0], ipAddress[1], ipAddress[2], ipAddress[3],
ipAddress[4], ipAddress[5], ipAddress[6], ipAddress[7],
@@ -37,7 +37,7 @@ inline bool endpointFromResolveTuple(const std::vector<uint8_t>& ipAddress,
}
else
{
- BMCWEB_LOG_ERROR << "Resolve failed to fetch the IP address";
+ BMCWEB_LOG_ERROR("Resolve failed to fetch the IP address");
return false;
}
return true;
@@ -66,14 +66,14 @@ class Resolver
void async_resolve(const std::string& host, std::string_view port,
ResolveHandler&& handler)
{
- BMCWEB_LOG_DEBUG << "Trying to resolve: " << host << ":" << port;
+ BMCWEB_LOG_DEBUG("Trying to resolve: {}:{}", host, port);
uint16_t portNum = 0;
auto it = std::from_chars(&*port.begin(), &*port.end(), portNum);
if (it.ec != std::errc())
{
- BMCWEB_LOG_ERROR << "Failed to get the Port";
+ BMCWEB_LOG_ERROR("Failed to get the Port");
handler(std::make_error_code(std::errc::invalid_argument),
results_type{});
@@ -90,12 +90,12 @@ class Resolver
results_type endpointList;
if (ec)
{
- BMCWEB_LOG_ERROR << "Resolve failed: " << ec.message();
+ BMCWEB_LOG_ERROR("Resolve failed: {}", ec.message());
handler(ec, endpointList);
return;
}
- BMCWEB_LOG_DEBUG << "ResolveHostname returned: " << hostName << ":"
- << flagNum;
+ BMCWEB_LOG_DEBUG("ResolveHostname returned: {}:{}", hostName,
+ flagNum);
// Extract the IP address from the response
for (const std::tuple<int32_t, int32_t, std::vector<uint8_t>>&
resolveList : resp)
@@ -109,7 +109,8 @@ class Resolver
boost::system::errc::address_not_available);
handler(ecErr, endpointList);
}
- BMCWEB_LOG_DEBUG << "resolved endpoint is : " << endpoint;
+ BMCWEB_LOG_DEBUG("resolved endpoint is : {}",
+ endpoint.address().to_string());
endpointList.push_back(endpoint);
}
// All the resolved data is filled in the endpointList
diff --git a/include/authentication.hpp b/include/authentication.hpp
index 9e3405be63..f3246c0fcf 100644
--- a/include/authentication.hpp
+++ b/include/authentication.hpp
@@ -38,7 +38,7 @@ static std::shared_ptr<persistent_data::UserSession>
performBasicAuth(const boost::asio::ip::address& clientIp,
std::string_view authHeader)
{
- BMCWEB_LOG_DEBUG << "[AuthMiddleware] Basic authentication";
+ BMCWEB_LOG_DEBUG("[AuthMiddleware] Basic authentication");
if (!authHeader.starts_with("Basic "))
{
@@ -66,9 +66,9 @@ static std::shared_ptr<persistent_data::UserSession>
}
std::string pass = authData.substr(separator);
- BMCWEB_LOG_DEBUG << "[AuthMiddleware] Authenticating user: " << user;
- BMCWEB_LOG_DEBUG << "[AuthMiddleware] User IPAddress: "
- << clientIp.to_string();
+ BMCWEB_LOG_DEBUG("[AuthMiddleware] Authenticating user: {}", user);
+ BMCWEB_LOG_DEBUG("[AuthMiddleware] User IPAddress: {}",
+ clientIp.to_string());
int pamrc = pamAuthenticateUser(user, pass);
bool isConfigureSelfOnly = pamrc == PAM_NEW_AUTHTOK_REQD;
@@ -93,7 +93,7 @@ static std::shared_ptr<persistent_data::UserSession>
static std::shared_ptr<persistent_data::UserSession>
performTokenAuth(std::string_view authHeader)
{
- BMCWEB_LOG_DEBUG << "[AuthMiddleware] Token authentication";
+ BMCWEB_LOG_DEBUG("[AuthMiddleware] Token authentication");
if (!authHeader.starts_with("Token "))
{
return nullptr;
@@ -109,7 +109,7 @@ static std::shared_ptr<persistent_data::UserSession>
static std::shared_ptr<persistent_data::UserSession>
performXtokenAuth(const boost::beast::http::header<true>& reqHeader)
{
- BMCWEB_LOG_DEBUG << "[AuthMiddleware] X-Auth-Token authentication";
+ BMCWEB_LOG_DEBUG("[AuthMiddleware] X-Auth-Token authentication");
std::string_view token = reqHeader["X-Auth-Token"];
if (token.empty())
@@ -127,7 +127,7 @@ static std::shared_ptr<persistent_data::UserSession>
performCookieAuth(boost::beast::http::verb method [[maybe_unused]],
const boost::beast::http::header<true>& reqHeader)
{
- BMCWEB_LOG_DEBUG << "[AuthMiddleware] Cookie authentication";
+ BMCWEB_LOG_DEBUG("[AuthMiddleware] Cookie authentication");
std::string_view cookieValue = reqHeader["Cookie"];
if (cookieValue.empty())
@@ -195,8 +195,8 @@ static std::shared_ptr<persistent_data::UserSession>
// set cookie only if this is req from the browser.
if (reqHeader["User-Agent"].empty())
{
- BMCWEB_LOG_DEBUG << " TLS session: " << sp->uniqueId
- << " will be used for this request.";
+ BMCWEB_LOG_DEBUG(" TLS session: {} will be used for this request.",
+ sp->uniqueId);
return sp;
}
// TODO: change this to not switch to cookie auth
@@ -208,8 +208,9 @@ static std::shared_ptr<persistent_data::UserSession>
"; SameSite=Strict; Secure; HttpOnly");
res.addHeader(boost::beast::http::field::set_cookie,
"IsAuthenticated=true; Secure");
- BMCWEB_LOG_DEBUG << " TLS session: " << sp->uniqueId
- << " with cookie will be used for this request.";
+ BMCWEB_LOG_DEBUG(
+ " TLS session: {} with cookie will be used for this request.",
+ sp->uniqueId);
return sp;
}
return nullptr;
@@ -284,7 +285,7 @@ static std::shared_ptr<persistent_data::UserSession>
}
#endif
std::string_view authHeader = reqHeader["Authorization"];
- BMCWEB_LOG_DEBUG << "authHeader=" << authHeader;
+ BMCWEB_LOG_DEBUG("authHeader={}", authHeader);
if (sessionOut == nullptr && authMethodsConfig.sessionToken)
{
diff --git a/include/dbus_monitor.hpp b/include/dbus_monitor.hpp
index 4ecc4367d9..26827172a4 100644
--- a/include/dbus_monitor.hpp
+++ b/include/dbus_monitor.hpp
@@ -36,7 +36,7 @@ inline int onPropertyUpdate(sd_bus_message* m, void* userdata,
{
if (retError == nullptr || (sd_bus_error_is_set(retError) != 0))
{
- BMCWEB_LOG_ERROR << "Got sdbus error on match";
+ BMCWEB_LOG_ERROR("Got sdbus error on match");
return 0;
}
crow::websocket::Connection* connection =
@@ -44,7 +44,8 @@ inline int onPropertyUpdate(sd_bus_message* m, void* userdata,
auto thisSession = sessions.find(connection);
if (thisSession == sessions.end())
{
- BMCWEB_LOG_ERROR << "Couldn't find dbus connection " << connection;
+ BMCWEB_LOG_ERROR("Couldn't find dbus connection {}",
+ logPtr(connection));
return 0;
}
sdbusplus::message_t message(m);
@@ -57,12 +58,12 @@ inline int onPropertyUpdate(sd_bus_message* m, void* userdata,
int r = openbmc_mapper::convertDBusToJSON("sa{sv}as", message, data);
if (r < 0)
{
- BMCWEB_LOG_ERROR << "convertDBusToJSON failed with " << r;
+ BMCWEB_LOG_ERROR("convertDBusToJSON failed with {}", r);
return 0;
}
if (!data.is_array())
{
- BMCWEB_LOG_ERROR << "No data in PropertiesChanged signal";
+ BMCWEB_LOG_ERROR("No data in PropertiesChanged signal");
return 0;
}
@@ -76,13 +77,13 @@ inline int onPropertyUpdate(sd_bus_message* m, void* userdata,
int r = openbmc_mapper::convertDBusToJSON("oa{sa{sv}}", message, data);
if (r < 0)
{
- BMCWEB_LOG_ERROR << "convertDBusToJSON failed with " << r;
+ BMCWEB_LOG_ERROR("convertDBusToJSON failed with {}", r);
return 0;
}
if (!data.is_array())
{
- BMCWEB_LOG_ERROR << "No data in InterfacesAdded signal";
+ BMCWEB_LOG_ERROR("No data in InterfacesAdded signal");
return 0;
}
@@ -98,8 +99,7 @@ inline int onPropertyUpdate(sd_bus_message* m, void* userdata,
}
else
{
- BMCWEB_LOG_CRITICAL << "message " << message.get_member()
- << " was unexpected";
+ BMCWEB_LOG_CRITICAL("message {} was unexpected", message.get_member());
return 0;
}
@@ -114,140 +114,140 @@ inline void requestRoutes(App& app)
.privileges({{"Login"}})
.websocket()
.onopen([&](crow::websocket::Connection& conn) {
- BMCWEB_LOG_DEBUG << "Connection " << &conn << " opened";
+ BMCWEB_LOG_DEBUG("Connection {} opened", logPtr(&conn));
sessions.try_emplace(&conn);
})
.onclose([&](crow::websocket::Connection& conn, const std::string&) {
sessions.erase(&conn);
})
- .onmessage(
- [&](crow::websocket::Connection& conn, const std::string& data,
- bool) {
- const auto sessionPair = sessions.find(&conn);
- if (sessionPair == sessions.end())
- {
- conn.close("Internal error");
- }
- DbusWebsocketSession& thisSession = sessionPair->second;
- BMCWEB_LOG_DEBUG << "Connection " << &conn << " received " << data;
- nlohmann::json j = nlohmann::json::parse(data, nullptr, false);
- if (j.is_discarded())
- {
- BMCWEB_LOG_ERROR << "Unable to parse json data for monitor";
- conn.close("Unable to parse json request");
- return;
- }
- nlohmann::json::iterator interfaces = j.find("interfaces");
- if (interfaces != j.end())
- {
- thisSession.interfaces.reserve(interfaces->size());
- for (auto& interface : *interfaces)
+ .onmessage([&](crow::websocket::Connection& conn,
+ const std::string& data, bool) {
+ const auto sessionPair = sessions.find(&conn);
+ if (sessionPair == sessions.end())
+ {
+ conn.close("Internal error");
+ }
+ DbusWebsocketSession& thisSession = sessionPair->second;
+ BMCWEB_LOG_DEBUG("Connection {} received {}", logPtr(&conn), data);
+ nlohmann::json j = nlohmann::json::parse(data, nullptr, false);
+ if (j.is_discarded())
+ {
+ BMCWEB_LOG_ERROR("Unable to parse json data for monitor");
+ conn.close("Unable to parse json request");
+ return;
+ }
+ nlohmann::json::iterator interfaces = j.find("interfaces");
+ if (interfaces != j.end())
{
- const std::string* str =
- interface.get_ptr<const std::string*>();
- if (str != nullptr)
+ thisSession.interfaces.reserve(interfaces->size());
+ for (auto& interface : *interfaces)
{
- thisSession.interfaces.insert(*str);
+ const std::string* str =
+ interface.get_ptr<const std::string*>();
+ if (str != nullptr)
+ {
+ thisSession.interfaces.insert(*str);
+ }
}
}
- }
-
- nlohmann::json::iterator paths = j.find("paths");
- if (paths == j.end())
- {
- BMCWEB_LOG_ERROR << "Unable to find paths in json data";
- conn.close("Unable to find paths in json data");
- return;
- }
- size_t interfaceCount = thisSession.interfaces.size();
- if (interfaceCount == 0)
- {
- interfaceCount = 1;
- }
- // Reserve our matches upfront. For each path there is 1 for
- // interfacesAdded, and InterfaceCount number for
- // PropertiesChanged
- thisSession.matches.reserve(thisSession.matches.size() +
- paths->size() * (1U + interfaceCount));
-
- // These regexes derived on the rules here:
- // https://dbus.freedesktop.org/doc/dbus-specification.html#message-protocol-names
- static std::regex validPath("^/([A-Za-z0-9_]+/?)*$");
- static std::regex validInterface(
- "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)+$");
-
- for (const auto& thisPath : *paths)
- {
- const std::string* thisPathString =
- thisPath.get_ptr<const std::string*>();
- if (thisPathString == nullptr)
+ nlohmann::json::iterator paths = j.find("paths");
+ if (paths == j.end())
{
- BMCWEB_LOG_ERROR << "subscribe path isn't a string?";
- conn.close();
+ BMCWEB_LOG_ERROR("Unable to find paths in json data");
+ conn.close("Unable to find paths in json data");
return;
}
- if (!std::regex_match(*thisPathString, validPath))
+
+ size_t interfaceCount = thisSession.interfaces.size();
+ if (interfaceCount == 0)
{
- BMCWEB_LOG_ERROR << "Invalid path name " << *thisPathString;
- conn.close();
- return;
+ interfaceCount = 1;
}
- std::string propertiesMatchString =
- ("type='signal',"
- "interface='org.freedesktop.DBus.Properties',"
- "path_namespace='" +
- *thisPathString +
- "',"
- "member='PropertiesChanged'");
- // If interfaces weren't specified, add a single match for all
- // interfaces
- if (thisSession.interfaces.empty())
+ // Reserve our matches upfront. For each path there is 1 for
+ // interfacesAdded, and InterfaceCount number for
+ // PropertiesChanged
+ thisSession.matches.reserve(thisSession.matches.size() +
+ paths->size() * (1U + interfaceCount));
+
+ // These regexes derived on the rules here:
+ // https://dbus.freedesktop.org/doc/dbus-specification.html#message-protocol-names
+ static std::regex validPath("^/([A-Za-z0-9_]+/?)*$");
+ static std::regex validInterface(
+ "^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)+$");
+
+ for (const auto& thisPath : *paths)
{
- BMCWEB_LOG_DEBUG << "Creating match " << propertiesMatchString;
+ const std::string* thisPathString =
+ thisPath.get_ptr<const std::string*>();
+ if (thisPathString == nullptr)
+ {
+ BMCWEB_LOG_ERROR("subscribe path isn't a string?");
+ conn.close();
+ return;
+ }
+ if (!std::regex_match(*thisPathString, validPath))
+ {
+ BMCWEB_LOG_ERROR("Invalid path name {}", *thisPathString);
+ conn.close();
+ return;
+ }
+ std::string propertiesMatchString =
+ ("type='signal',"
+ "interface='org.freedesktop.DBus.Properties',"
+ "path_namespace='" +
+ *thisPathString +
+ "',"
+ "member='PropertiesChanged'");
+ // If interfaces weren't specified, add a single match for all
+ // interfaces
+ if (thisSession.interfaces.empty())
+ {
+ BMCWEB_LOG_DEBUG("Creating match {}",
+ propertiesMatchString);
- thisSession.matches.emplace_back(
- std::make_unique<sdbusplus::bus::match_t>(
- *crow::connections::systemBus, propertiesMatchString,
- onPropertyUpdate, &conn));
- }
- else
- {
- // If interfaces were specified, add a match for each
- // interface
- for (const std::string& interface : thisSession.interfaces)
+ thisSession.matches.emplace_back(
+ std::make_unique<sdbusplus::bus::match_t>(
+ *crow::connections::systemBus,
+ propertiesMatchString, onPropertyUpdate, &conn));
+ }
+ else
{
- if (!std::regex_match(interface, validInterface))
+ // If interfaces were specified, add a match for each
+ // interface
+ for (const std::string& interface : thisSession.interfaces)
{
- BMCWEB_LOG_ERROR << "Invalid interface name "
- << interface;
- conn.close();
- return;
+ if (!std::regex_match(interface, validInterface))
+ {
+ BMCWEB_LOG_ERROR("Invalid interface name {}",
+ interface);
+ conn.close();
+ return;
+ }
+ std::string ifaceMatchString = propertiesMatchString;
+ ifaceMatchString += ",arg0='";
+ ifaceMatchString += interface;
+ ifaceMatchString += "'";
+ BMCWEB_LOG_DEBUG("Creating match {}", ifaceMatchString);
+ thisSession.matches.emplace_back(
+ std::make_unique<sdbusplus::bus::match_t>(
+ *crow::connections::systemBus, ifaceMatchString,
+ onPropertyUpdate, &conn));
}
- std::string ifaceMatchString = propertiesMatchString;
- ifaceMatchString += ",arg0='";
- ifaceMatchString += interface;
- ifaceMatchString += "'";
- BMCWEB_LOG_DEBUG << "Creating match " << ifaceMatchString;
- thisSession.matches.emplace_back(
- std::make_unique<sdbusplus::bus::match_t>(
- *crow::connections::systemBus, ifaceMatchString,
- onPropertyUpdate, &conn));
}
+ std::string objectManagerMatchString =
+ ("type='signal',"
+ "interface='org.freedesktop.DBus.ObjectManager',"
+ "path_namespace='" +
+ *thisPathString +
+ "',"
+ "member='InterfacesAdded'");
+ BMCWEB_LOG_DEBUG("Creating match {}", objectManagerMatchString);
+ thisSession.matches.emplace_back(
+ std::make_unique<sdbusplus::bus::match_t>(
+ *crow::connections::systemBus, objectManagerMatchString,
+ onPropertyUpdate, &conn));
}
- std::string objectManagerMatchString =
- ("type='signal',"
- "interface='org.freedesktop.DBus.ObjectManager',"
- "path_namespace='" +
- *thisPathString +
- "',"
- "member='InterfacesAdded'");
- BMCWEB_LOG_DEBUG << "Creating match " << objectManagerMatchString;
- thisSession.matches.emplace_back(
- std::make_unique<sdbusplus::bus::match_t>(
- *crow::connections::systemBus, objectManagerMatchString,
- onPropertyUpdate, &conn));
- }
});
}
} // namespace dbus_monitor
diff --git a/include/dbus_privileges.hpp b/include/dbus_privileges.hpp
index 377a41cbee..65b4042492 100644
--- a/include/dbus_privileges.hpp
+++ b/include/dbus_privileges.hpp
@@ -34,7 +34,7 @@ inline bool
if (!success)
{
- BMCWEB_LOG_ERROR << "Failed to unpack user properties.";
+ BMCWEB_LOG_ERROR("Failed to unpack user properties.");
asyncResp->res.result(
boost::beast::http::status::internal_server_error);
return false;
@@ -43,13 +43,13 @@ inline bool
if (userRolePtr != nullptr)
{
req.session->userRole = *userRolePtr;
- BMCWEB_LOG_DEBUG << "userName = " << req.session->username
- << " userRole = " << *userRolePtr;
+ BMCWEB_LOG_DEBUG("userName = {} userRole = {}", req.session->username,
+ *userRolePtr);
}
if (remoteUser == nullptr)
{
- BMCWEB_LOG_ERROR << "RemoteUser property missing or wrong type";
+ BMCWEB_LOG_ERROR("RemoteUser property missing or wrong type");
asyncResp->res.result(
boost::beast::http::status::internal_server_error);
return false;
@@ -59,8 +59,8 @@ inline bool
{
if (!*remoteUser)
{
- BMCWEB_LOG_ERROR << "UserPasswordExpired property is expected for"
- " local user but is missing or wrong type";
+ BMCWEB_LOG_ERROR("UserPasswordExpired property is expected for"
+ " local user but is missing or wrong type");
asyncResp->res.result(
boost::beast::http::status::internal_server_error);
return false;
@@ -103,7 +103,7 @@ inline bool
// Remove all privileges except ConfigureSelf
userPrivileges =
userPrivileges.intersection(redfish::Privileges{"ConfigureSelf"});
- BMCWEB_LOG_DEBUG << "Operation limited to ConfigureSelf";
+ BMCWEB_LOG_DEBUG("Operation limited to ConfigureSelf");
}
if (!rule.checkPrivileges(userPrivileges))
@@ -132,7 +132,7 @@ void afterGetUserInfo(Request& req,
{
if (ec)
{
- BMCWEB_LOG_ERROR << "GetUserInfo failed...";
+ BMCWEB_LOG_ERROR("GetUserInfo failed...");
asyncResp->res.result(
boost::beast::http::status::internal_server_error);
return;
@@ -140,7 +140,7 @@ void afterGetUserInfo(Request& req,
if (!populateUserInfo(req, asyncResp, userInfoMap))
{
- BMCWEB_LOG_ERROR << "Failed to populate user information";
+ BMCWEB_LOG_ERROR("Failed to populate user information");
asyncResp->res.result(
boost::beast::http::status::internal_server_error);
return;
@@ -149,7 +149,7 @@ void afterGetUserInfo(Request& req,
if (!isUserPrivileged(req, asyncResp, rule))
{
// User is not privileged
- BMCWEB_LOG_ERROR << "Insufficient Privilege";
+ BMCWEB_LOG_ERROR("Insufficient Privilege");
asyncResp->res.result(boost::beast::http::status::forbidden);
return;
}
diff --git a/include/dbus_utility.hpp b/include/dbus_utility.hpp
index f8e53f44af..948b8f0965 100644
--- a/include/dbus_utility.hpp
+++ b/include/dbus_utility.hpp
@@ -111,7 +111,7 @@ inline void logError(const boost::system::error_code& ec)
{
if (ec)
{
- BMCWEB_LOG_ERROR << "DBus error: " << ec << ", cannot call method";
+ BMCWEB_LOG_ERROR("DBus error: {}, cannot call method", ec);
}
}
diff --git a/include/event_service_store.hpp b/include/event_service_store.hpp
index dcc99f102c..61f1ac7b0f 100644
--- a/include/event_service_store.hpp
+++ b/include/event_service_store.hpp
@@ -151,8 +151,8 @@ struct UserSubscription
val.value().get_ptr<const std::string*>();
if (value == nullptr)
{
- BMCWEB_LOG_ERROR << "Failed to parse value for key"
- << val.key();
+ BMCWEB_LOG_ERROR("Failed to parse value for key{}",
+ val.key());
continue;
}
subvalue->httpHeaders.set(val.key(), *value);
@@ -174,9 +174,9 @@ struct UserSubscription
}
else
{
- BMCWEB_LOG_ERROR
- << "Got unexpected property reading persistent file: "
- << element.key();
+ BMCWEB_LOG_ERROR(
+ "Got unexpected property reading persistent file: {}",
+ element.key());
continue;
}
}
@@ -187,8 +187,8 @@ struct UserSubscription
subvalue->eventFormatType.empty() ||
subvalue->subscriptionType.empty())
{
- BMCWEB_LOG_ERROR << "Subscription missing required field "
- "information, refusing to restore";
+ BMCWEB_LOG_ERROR("Subscription missing required field "
+ "information, refusing to restore");
return nullptr;
}
diff --git a/include/google/google_service_root.hpp b/include/google/google_service_root.hpp
index f39b45f572..bb51490e9d 100644
--- a/include/google/google_service_root.hpp
+++ b/include/google/google_service_root.hpp
@@ -153,8 +153,8 @@ inline void
{
if (ec)
{
- BMCWEB_LOG_ERROR << "RootOfTrust.Actions.SendCommand failed: "
- << ec.message();
+ BMCWEB_LOG_ERROR("RootOfTrust.Actions.SendCommand failed: {}",
+ ec.message());
redfish::messages::internalError(asyncResp->res);
return;
}
@@ -171,7 +171,7 @@ inline void
std::vector<uint8_t> bytes = hexStringToBytes(command);
if (bytes.empty())
{
- BMCWEB_LOG_DEBUG << "Invalid command: " << command;
+ BMCWEB_LOG_DEBUG("Invalid command: {}", command);
redfish::messages::actionParameterValueTypeError(command, "Command",
"SendCommand");
return;
@@ -195,7 +195,7 @@ inline void handleRoTSendCommandPost(
if (!redfish::json_util::readJsonAction(request, asyncResp->res, "Command",
command))
{
- BMCWEB_LOG_DEBUG << "Missing property Command.";
+ BMCWEB_LOG_DEBUG("Missing property Command.");
redfish::messages::actionParameterMissing(asyncResp->res, "SendCommand",
"Command");
return;
diff --git a/include/hostname_monitor.hpp b/include/hostname_monitor.hpp
index fd49b02cf4..f1a0d3d2c1 100644
--- a/include/hostname_monitor.hpp
+++ b/include/hostname_monitor.hpp
@@ -22,12 +22,12 @@ inline void installCertificate(const std::filesystem::path& certPath)
[certPath](const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_ERROR << "Replace Certificate Fail..";
+ BMCWEB_LOG_ERROR("Replace Certificate Fail..");
return;
}
- BMCWEB_LOG_INFO << "Replace HTTPs Certificate Success, "
- "remove temporary certificate file..";
+ BMCWEB_LOG_INFO("Replace HTTPs Certificate Success, "
+ "remove temporary certificate file..");
remove(certPath.c_str());
},
"xyz.openbmc_project.Certs.Manager.Server.Https",
@@ -40,7 +40,7 @@ inline int onPropertyUpdate(sd_bus_message* m, void* /* userdata */,
{
if (retError == nullptr || (sd_bus_error_is_set(retError) != 0))
{
- BMCWEB_LOG_ERROR << "Got sdbus error on match";
+ BMCWEB_LOG_ERROR("Got sdbus error on match");
return 0;
}
@@ -62,13 +62,13 @@ inline int onPropertyUpdate(sd_bus_message* m, void* /* userdata */,
return 0;
}
- BMCWEB_LOG_DEBUG << "Read hostname from signal: " << *hostname;
+ BMCWEB_LOG_DEBUG("Read hostname from signal: {}", *hostname);
const std::string certFile = "/etc/ssl/certs/https/server.pem";
X509* cert = ensuressl::loadCert(certFile);
if (cert == nullptr)
{
- BMCWEB_LOG_ERROR << "Failed to read cert";
+ BMCWEB_LOG_ERROR("Failed to read cert");
return 0;
}
@@ -80,7 +80,7 @@ inline int onPropertyUpdate(sd_bus_message* m, void* /* userdata */,
cnBuffer.size());
if (cnLength == -1)
{
- BMCWEB_LOG_ERROR << "Failed to read NID_commonName";
+ BMCWEB_LOG_ERROR("Failed to read NID_commonName");
X509_free(cert);
return 0;
}
@@ -90,16 +90,16 @@ inline int onPropertyUpdate(sd_bus_message* m, void* /* userdata */,
EVP_PKEY* pPubKey = X509_get_pubkey(cert);
if (pPubKey == nullptr)
{
- BMCWEB_LOG_ERROR << "Failed to get public key";
+ BMCWEB_LOG_ERROR("Failed to get public key");
X509_free(cert);
return 0;
}
int isSelfSigned = X509_verify(cert, pPubKey);
EVP_PKEY_free(pPubKey);
- BMCWEB_LOG_DEBUG << "Current HTTPs Certificate Subject CN: " << cnValue
- << ", New HostName: " << *hostname
- << ", isSelfSigned: " << isSelfSigned;
+ BMCWEB_LOG_DEBUG(
+ "Current HTTPs Certificate Subject CN: {}, New HostName: {}, isSelfSigned: {}",
+ cnValue, *hostname, isSelfSigned);
ASN1_IA5STRING* asn1 = static_cast<ASN1_IA5STRING*>(
X509_get_ext_d2i(cert, NID_netscape_comment, nullptr, nullptr));
@@ -108,13 +108,14 @@ inline int onPropertyUpdate(sd_bus_message* m, void* /* userdata */,
// NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast)
std::string_view comment(reinterpret_cast<const char*>(asn1->data),
static_cast<size_t>(asn1->length));
- BMCWEB_LOG_DEBUG << "x509Comment: " << comment;
+ BMCWEB_LOG_DEBUG("x509Comment: {}", comment);
if (ensuressl::x509Comment == comment && isSelfSigned == 1 &&
cnValue != *hostname)
{
- BMCWEB_LOG_INFO << "Ready to generate new HTTPs "
- << "certificate with subject cn: " << *hostname;
+ BMCWEB_LOG_INFO(
+ "Ready to generate new HTTPs certificate with subject cn: {}",
+ *hostname);
ensuressl::generateSslCertificate("/tmp/hostname_cert.tmp",
*hostname);
@@ -128,7 +129,7 @@ inline int onPropertyUpdate(sd_bus_message* m, void* /* userdata */,
inline void registerHostnameSignal()
{
- BMCWEB_LOG_INFO << "Register HostName PropertiesChanged Signal";
+ BMCWEB_LOG_INFO("Register HostName PropertiesChanged Signal");
std::string propertiesMatchString =
("type='signal',"
"interface='org.freedesktop.DBus.Properties',"
diff --git a/include/ibm/locks.hpp b/include/ibm/locks.hpp
index b61f9a5e47..2208aaffed 100644
--- a/include/ibm/locks.hpp
+++ b/include/ibm/locks.hpp
@@ -200,7 +200,7 @@ inline RcGetLockList Lock::getLockList(const ListOfSessionIds& listSessionId)
// given
if (std::get<0>(it->second[0]) == i)
{
- BMCWEB_LOG_DEBUG << "Session id is found in the locktable";
+ BMCWEB_LOG_DEBUG("Session id is found in the locktable");
// Push the whole lock record into a vector for returning
// the json
@@ -225,7 +225,7 @@ inline RcReleaseLockApi Lock::releaseLock(const ListOfTransactionIds& p,
if (!status)
{
// Validation of rids failed
- BMCWEB_LOG_ERROR << "releaseLock: Contains invalid request id";
+ BMCWEB_LOG_ERROR("releaseLock: Contains invalid request id");
return std::make_pair(false, status);
}
// Validation passed, check if all the locks are owned by the
@@ -247,8 +247,8 @@ inline RcAcquireLock Lock::acquireLock(const LockRequests& lockRequestStructure)
bool status = isValidLockRequest(lockRecord);
if (!status)
{
- BMCWEB_LOG_DEBUG << "Not a Valid record";
- BMCWEB_LOG_DEBUG << "Bad json in request";
+ BMCWEB_LOG_DEBUG("Not a Valid record");
+ BMCWEB_LOG_DEBUG("Bad json in request");
return std::make_pair(true, std::make_pair(status, 0));
}
}
@@ -259,16 +259,16 @@ inline RcAcquireLock Lock::acquireLock(const LockRequests& lockRequestStructure)
if (status)
{
- BMCWEB_LOG_DEBUG << "There is a conflict within itself";
+ BMCWEB_LOG_DEBUG("There is a conflict within itself");
return std::make_pair(true, std::make_pair(status, 1));
}
- BMCWEB_LOG_DEBUG << "The request is not conflicting within itself";
+ BMCWEB_LOG_DEBUG("The request is not conflicting within itself");
// Need to check for conflict with the locktable entries.
auto conflict = isConflictWithTable(multiRequest);
- BMCWEB_LOG_DEBUG << "Done with checking conflict with the locktable";
+ BMCWEB_LOG_DEBUG("Done with checking conflict with the locktable");
return std::make_pair(false, conflict);
}
@@ -285,10 +285,10 @@ inline void Lock::releaseLock(const std::string& sessionId)
// given
if (std::get<0>(it->second[0]) == sessionId)
{
- BMCWEB_LOG_DEBUG << "Remove the lock from the locktable "
- "having sessionID="
- << sessionId;
- BMCWEB_LOG_DEBUG << "TransactionID =" << it->first;
+ BMCWEB_LOG_DEBUG("Remove the lock from the locktable "
+ "having sessionID={}",
+ sessionId);
+ BMCWEB_LOG_DEBUG("TransactionID ={}", it->first);
it = lockTable.erase(it);
}
else
@@ -315,23 +315,23 @@ inline RcRelaseLock Lock::isItMyLock(const ListOfTransactionIds& refRids,
(expectedSessionId == ids.second))
{
// It is owned by the currently request hmc
- BMCWEB_LOG_DEBUG << "Lock is owned by the current hmc";
+ BMCWEB_LOG_DEBUG("Lock is owned by the current hmc");
// remove the lock
if (lockTable.erase(id) != 0U)
{
- BMCWEB_LOG_DEBUG << "Removing the locks with transaction ID : "
- << id;
+ BMCWEB_LOG_DEBUG("Removing the locks with transaction ID : {}",
+ id);
}
else
{
- BMCWEB_LOG_ERROR << "Removing the locks from the lock table "
- "failed, transaction ID: "
- << id;
+ BMCWEB_LOG_ERROR("Removing the locks from the lock table "
+ "failed, transaction ID: {}",
+ id);
}
}
else
{
- BMCWEB_LOG_DEBUG << "Lock is not owned by the current hmc";
+ BMCWEB_LOG_DEBUG("Lock is not owned by the current hmc");
return std::make_pair(false, std::make_pair(id, lockTable[id][0]));
}
}
@@ -346,13 +346,13 @@ inline bool Lock::validateRids(const ListOfTransactionIds& refRids)
if (search != lockTable.end())
{
- BMCWEB_LOG_DEBUG << "Valid Transaction id";
+ BMCWEB_LOG_DEBUG("Valid Transaction id");
// continue for the next rid
}
else
{
- BMCWEB_LOG_ERROR << "validateRids: At least 1 inValid Request id: "
- << id;
+ BMCWEB_LOG_ERROR("validateRids: At least 1 inValid Request id: {}",
+ id);
return false;
}
}
@@ -366,21 +366,21 @@ inline bool Lock::isValidLockRequest(const LockRequest& refLockRecord)
if (!((boost::equals(std::get<2>(refLockRecord), "Read") ||
(boost::equals(std::get<2>(refLockRecord), "Write")))))
{
- BMCWEB_LOG_DEBUG << "Validation of LockType Failed";
- BMCWEB_LOG_DEBUG << "Locktype : " << std::get<2>(refLockRecord);
+ BMCWEB_LOG_DEBUG("Validation of LockType Failed");
+ BMCWEB_LOG_DEBUG("Locktype : {}", std::get<2>(refLockRecord));
return false;
}
- BMCWEB_LOG_DEBUG << static_cast<int>(std::get<4>(refLockRecord).size());
+ BMCWEB_LOG_DEBUG("{}", static_cast<int>(std::get<4>(refLockRecord).size()));
// validate the number of segments
// Allowed No of segments are between 2 and 6
if ((static_cast<int>(std::get<4>(refLockRecord).size()) > 6) ||
(static_cast<int>(std::get<4>(refLockRecord).size()) < 2))
{
- BMCWEB_LOG_DEBUG << "Validation of Number of Segments Failed";
- BMCWEB_LOG_DEBUG << "Number of Segments provied : "
- << std::get<4>(refLockRecord).size();
+ BMCWEB_LOG_DEBUG("Validation of Number of Segments Failed");
+ BMCWEB_LOG_DEBUG("Number of Segments provied : {}",
+ std::get<4>(refLockRecord).size());
return false;
}
@@ -396,8 +396,8 @@ inline bool Lock::isValidLockRequest(const LockRequest& refLockRecord)
(boost::equals(p.first, "LockAll")) ||
(boost::equals(p.first, "DontLock")))))
{
- BMCWEB_LOG_DEBUG << "Validation of lock flags failed";
- BMCWEB_LOG_DEBUG << p.first;
+ BMCWEB_LOG_DEBUG("Validation of lock flags failed");
+ BMCWEB_LOG_DEBUG("{}", p.first);
return false;
}
@@ -406,8 +406,8 @@ inline bool Lock::isValidLockRequest(const LockRequest& refLockRecord)
if (p.second < 1 || p.second > 4)
{
- BMCWEB_LOG_DEBUG << "Validation of Segment Length Failed";
- BMCWEB_LOG_DEBUG << p.second;
+ BMCWEB_LOG_DEBUG("Validation of Segment Length Failed");
+ BMCWEB_LOG_DEBUG("{}", p.second);
return false;
}
@@ -430,16 +430,16 @@ inline Rc Lock::isConflictWithTable(const LockRequests& refLockRequestStructure)
if (lockTable.empty())
{
uint32_t thisTransactionId = generateTransactionId();
- BMCWEB_LOG_DEBUG << thisTransactionId;
+ BMCWEB_LOG_DEBUG("{}", thisTransactionId);
// Lock table is empty, so we are safe to add the lockrecords
// as there will be no conflict
- BMCWEB_LOG_DEBUG << "Lock table is empty, so adding the lockrecords";
+ BMCWEB_LOG_DEBUG("Lock table is empty, so adding the lockrecords");
lockTable.emplace(thisTransactionId, refLockRequestStructure);
return std::make_pair(false, thisTransactionId);
}
- BMCWEB_LOG_DEBUG
- << "Lock table is not empty, check for conflict with lock table";
+ BMCWEB_LOG_DEBUG(
+ "Lock table is not empty, check for conflict with lock table");
// Lock table is not empty, compare the lockrequest entries with
// the entries in the lock table
@@ -464,7 +464,7 @@ inline Rc Lock::isConflictWithTable(const LockRequests& refLockRequestStructure)
// Lock table is empty, so we are safe to add the lockrecords
// as there will be no conflict
- BMCWEB_LOG_DEBUG << " Adding elements into lock table";
+ BMCWEB_LOG_DEBUG(" Adding elements into lock table");
transactionId = generateTransactionId();
lockTable.emplace(std::make_pair(transactionId, refLockRequestStructure));
@@ -478,14 +478,14 @@ inline bool Lock::isConflictRequest(const LockRequests& refLockRequestStructure)
if (refLockRequestStructure.size() == 1)
{
- BMCWEB_LOG_DEBUG << "Only single lock request, so there is no conflict";
+ BMCWEB_LOG_DEBUG("Only single lock request, so there is no conflict");
// This means , we have only one lock request in the current
// request , so no conflict within the request
return false;
}
- BMCWEB_LOG_DEBUG
- << "There are multiple lock requests coming in a single request";
+ BMCWEB_LOG_DEBUG(
+ "There are multiple lock requests coming in a single request");
// There are multiple requests a part of one request
@@ -537,7 +537,7 @@ inline bool Lock::isConflictRecord(const LockRequest& refLockRecord1,
if (boost::equals(std::get<2>(refLockRecord1), "Read") &&
boost::equals(std::get<2>(refLockRecord2), "Read"))
{
- BMCWEB_LOG_DEBUG << "Both are read locks, no conflict";
+ BMCWEB_LOG_DEBUG("Both are read locks, no conflict");
return false;
}
@@ -549,9 +549,9 @@ inline bool Lock::isConflictRecord(const LockRequest& refLockRecord1,
if (boost::equals(p.first, "LockAll") ||
boost::equals(std::get<4>(refLockRecord2)[i].first, "LockAll"))
{
- BMCWEB_LOG_DEBUG
- << "Either of the Comparing locks are trying to lock all "
- "resources under the current resource level";
+ BMCWEB_LOG_DEBUG(
+ "Either of the Comparing locks are trying to lock all "
+ "resources under the current resource level");
return true;
}
@@ -569,10 +569,10 @@ inline bool Lock::isConflictRecord(const LockRequest& refLockRecord1,
// So no conflict
if (p.second != std::get<4>(refLockRecord2)[i].second)
{
- BMCWEB_LOG_DEBUG << "Segment lengths are not same";
- BMCWEB_LOG_DEBUG << "Segment 1 length : " << p.second;
- BMCWEB_LOG_DEBUG << "Segment 2 length : "
- << std::get<4>(refLockRecord2)[i].second;
+ BMCWEB_LOG_DEBUG("Segment lengths are not same");
+ BMCWEB_LOG_DEBUG("Segment 1 length : {}", p.second);
+ BMCWEB_LOG_DEBUG("Segment 2 length : {}",
+ std::get<4>(refLockRecord2)[i].second);
return false;
}
diff --git a/include/ibm/management_console_rest.hpp b/include/ibm/management_console_rest.hpp
index 579d46c431..b87cb1ee19 100644
--- a/include/ibm/management_console_rest.hpp
+++ b/include/ibm/management_console_rest.hpp
@@ -55,11 +55,11 @@ inline void handleFilePut(const crow::Request& req,
asyncResp->res.jsonValue["Description"] = contentNotAcceptableMsg;
return;
}
- BMCWEB_LOG_DEBUG
- << "File upload in application/octet-stream format. Continue..";
+ BMCWEB_LOG_DEBUG(
+ "File upload in application/octet-stream format. Continue..");
- BMCWEB_LOG_DEBUG
- << "handleIbmPut: Request to create/update the save-area file";
+ BMCWEB_LOG_DEBUG(
+ "handleIbmPut: Request to create/update the save-area file");
std::string_view path =
"/var/lib/bmcweb/ibm-management-console/configfiles";
if (!crow::ibm_utils::createDirectory(path))
@@ -80,9 +80,9 @@ inline void handleFilePut(const crow::Request& req,
asyncResp->res.result(
boost::beast::http::status::internal_server_error);
asyncResp->res.jsonValue["Description"] = internalServerError;
- BMCWEB_LOG_DEBUG << "handleIbmPut: Failed to prepare save-area "
- "directory iterator. ec : "
- << ec;
+ BMCWEB_LOG_DEBUG("handleIbmPut: Failed to prepare save-area "
+ "directory iterator. ec : {}",
+ ec.message());
return;
}
std::uintmax_t saveAreaDirSize = 0;
@@ -95,9 +95,9 @@ inline void handleFilePut(const crow::Request& req,
asyncResp->res.result(
boost::beast::http::status::internal_server_error);
asyncResp->res.jsonValue["Description"] = internalServerError;
- BMCWEB_LOG_DEBUG << "handleIbmPut: Failed to find save-area "
- "directory . ec : "
- << ec;
+ BMCWEB_LOG_DEBUG("handleIbmPut: Failed to find save-area "
+ "directory . ec : {}",
+ ec.message());
return;
}
std::uintmax_t fileSize = std::filesystem::file_size(it, ec);
@@ -106,19 +106,19 @@ inline void handleFilePut(const crow::Request& req,
asyncResp->res.result(
boost::beast::http::status::internal_server_error);
asyncResp->res.jsonValue["Description"] = internalServerError;
- BMCWEB_LOG_DEBUG << "handleIbmPut: Failed to find save-area "
- "file size inside the directory . ec : "
- << ec;
+ BMCWEB_LOG_DEBUG("handleIbmPut: Failed to find save-area "
+ "file size inside the directory . ec : {}",
+ ec.message());
return;
}
saveAreaDirSize += fileSize;
}
}
- BMCWEB_LOG_DEBUG << "saveAreaDirSize: " << saveAreaDirSize;
+ BMCWEB_LOG_DEBUG("saveAreaDirSize: {}", saveAreaDirSize);
// Get the file size getting uploaded
const std::string& data = req.body();
- BMCWEB_LOG_DEBUG << "data length: " << data.length();
+ BMCWEB_LOG_DEBUG("data length: {}", data.length());
if (data.length() < minSaveareaFileSize)
{
@@ -137,7 +137,7 @@ inline void handleFilePut(const crow::Request& req,
// Form the file path
loc /= fileID;
- BMCWEB_LOG_DEBUG << "Writing to the file: " << loc.string();
+ BMCWEB_LOG_DEBUG("Writing to the file: {}", loc.string());
// Check if the same file exists in the directory
bool fileExists = std::filesystem::exists(loc, ec);
@@ -146,8 +146,8 @@ inline void handleFilePut(const crow::Request& req,
asyncResp->res.result(
boost::beast::http::status::internal_server_error);
asyncResp->res.jsonValue["Description"] = internalServerError;
- BMCWEB_LOG_DEBUG << "handleIbmPut: Failed to find if file exists. ec : "
- << ec;
+ BMCWEB_LOG_DEBUG("handleIbmPut: Failed to find if file exists. ec : {}",
+ ec.message());
return;
}
@@ -161,8 +161,8 @@ inline void handleFilePut(const crow::Request& req,
asyncResp->res.result(
boost::beast::http::status::internal_server_error);
asyncResp->res.jsonValue["Description"] = internalServerError;
- BMCWEB_LOG_DEBUG << "handleIbmPut: Failed to find file size. ec : "
- << ec;
+ BMCWEB_LOG_DEBUG("handleIbmPut: Failed to find file size. ec : {}",
+ ec.message());
return;
}
// Calculate the difference in the file size.
@@ -175,7 +175,7 @@ inline void handleFilePut(const crow::Request& req,
{
newSizeToWrite = data.length() - currentFileSize;
}
- BMCWEB_LOG_DEBUG << "newSizeToWrite: " << newSizeToWrite;
+ BMCWEB_LOG_DEBUG("newSizeToWrite: {}", newSizeToWrite);
}
else
{
@@ -184,7 +184,7 @@ inline void handleFilePut(const crow::Request& req,
}
// Calculate the total dir size before writing the new file
- BMCWEB_LOG_DEBUG << "total new size: " << saveAreaDirSize + newSizeToWrite;
+ BMCWEB_LOG_DEBUG("total new size: {}", saveAreaDirSize + newSizeToWrite);
if ((saveAreaDirSize + newSizeToWrite) > maxSaveareaDirSize)
{
@@ -204,7 +204,7 @@ inline void handleFilePut(const crow::Request& req,
if (file.fail())
{
- BMCWEB_LOG_DEBUG << "Error while opening the file for writing";
+ BMCWEB_LOG_DEBUG("Error while opening the file for writing");
asyncResp->res.result(
boost::beast::http::status::internal_server_error);
asyncResp->res.jsonValue["Description"] =
@@ -217,12 +217,12 @@ inline void handleFilePut(const crow::Request& req,
// Push an event
if (fileExists)
{
- BMCWEB_LOG_DEBUG << "config file is updated";
+ BMCWEB_LOG_DEBUG("config file is updated");
asyncResp->res.jsonValue["Description"] = "File Updated";
}
else
{
- BMCWEB_LOG_DEBUG << "config file is created";
+ BMCWEB_LOG_DEBUG("config file is created");
asyncResp->res.jsonValue["Description"] = "File Created";
}
}
@@ -271,9 +271,9 @@ inline void
asyncResp->res.result(
boost::beast::http::status::internal_server_error);
asyncResp->res.jsonValue["Description"] = internalServerError;
- BMCWEB_LOG_DEBUG << "deleteConfigFiles: Failed to delete the "
- "config files directory. ec : "
- << ec;
+ BMCWEB_LOG_DEBUG("deleteConfigFiles: Failed to delete the "
+ "config files directory. ec : {}",
+ ec.message());
}
}
}
@@ -297,12 +297,12 @@ inline void
inline void handleFileGet(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
const std::string& fileID)
{
- BMCWEB_LOG_DEBUG << "HandleGet on SaveArea files on path: " << fileID;
+ BMCWEB_LOG_DEBUG("HandleGet on SaveArea files on path: {}", fileID);
std::filesystem::path loc(
"/var/lib/bmcweb/ibm-management-console/configfiles/" + fileID);
if (!std::filesystem::exists(loc) || !std::filesystem::is_regular_file(loc))
{
- BMCWEB_LOG_WARNING << loc.string() << " Not found";
+ BMCWEB_LOG_WARNING("{} Not found", loc.string());
asyncResp->res.result(boost::beast::http::status::not_found);
asyncResp->res.jsonValue["Description"] = resourceNotFoundMsg;
return;
@@ -311,7 +311,7 @@ inline void handleFileGet(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
std::ifstream readfile(loc.string());
if (!readfile)
{
- BMCWEB_LOG_WARNING << loc.string() << " Not found";
+ BMCWEB_LOG_WARNING("{} Not found", loc.string());
asyncResp->res.result(boost::beast::http::status::not_found);
asyncResp->res.jsonValue["Description"] = resourceNotFoundMsg;
return;
@@ -333,18 +333,18 @@ inline void
{
std::string filePath("/var/lib/bmcweb/ibm-management-console/configfiles/" +
fileID);
- BMCWEB_LOG_DEBUG << "Removing the file : " << filePath << "\n";
+ BMCWEB_LOG_DEBUG("Removing the file : {}", filePath);
std::ifstream fileOpen(filePath.c_str());
if (static_cast<bool>(fileOpen))
{
if (remove(filePath.c_str()) == 0)
{
- BMCWEB_LOG_DEBUG << "File removed!\n";
+ BMCWEB_LOG_DEBUG("File removed!");
asyncResp->res.jsonValue["Description"] = "File Deleted";
}
else
{
- BMCWEB_LOG_ERROR << "File not removed!\n";
+ BMCWEB_LOG_ERROR("File not removed!");
asyncResp->res.result(
boost::beast::http::status::internal_server_error);
asyncResp->res.jsonValue["Description"] = internalServerError;
@@ -352,7 +352,7 @@ inline void
}
else
{
- BMCWEB_LOG_WARNING << "File not found!\n";
+ BMCWEB_LOG_WARNING("File not found!");
asyncResp->res.result(boost::beast::http::status::not_found);
asyncResp->res.jsonValue["Description"] = resourceNotFoundMsg;
}
@@ -367,13 +367,13 @@ inline void
if (!redfish::json_util::readJsonPatch(req, asyncResp->res, "Message",
broadcastMsg))
{
- BMCWEB_LOG_DEBUG << "Not a Valid JSON";
+ BMCWEB_LOG_DEBUG("Not a Valid JSON");
asyncResp->res.result(boost::beast::http::status::bad_request);
return;
}
if (broadcastMsg.size() > maxBroadcastMsgSize)
{
- BMCWEB_LOG_ERROR << "Message size exceeds maximum allowed size[1KB]";
+ BMCWEB_LOG_ERROR("Message size exceeds maximum allowed size[1KB]");
asyncResp->res.result(boost::beast::http::status::bad_request);
return;
}
@@ -418,14 +418,14 @@ inline void
lockType, "ResourceID", resourceId,
"SegmentFlags", segmentFlags))
{
- BMCWEB_LOG_DEBUG << "Not a Valid JSON";
+ BMCWEB_LOG_DEBUG("Not a Valid JSON");
asyncResp->res.result(boost::beast::http::status::bad_request);
return;
}
- BMCWEB_LOG_DEBUG << lockType;
- BMCWEB_LOG_DEBUG << resourceId;
+ BMCWEB_LOG_DEBUG("{}", lockType);
+ BMCWEB_LOG_DEBUG("{}", resourceId);
- BMCWEB_LOG_DEBUG << "Segment Flags are present";
+ BMCWEB_LOG_DEBUG("Segment Flags are present");
for (auto& e : segmentFlags)
{
@@ -440,8 +440,8 @@ inline void
return;
}
- BMCWEB_LOG_DEBUG << "Lockflag : " << lockFlags;
- BMCWEB_LOG_DEBUG << "SegmentLength : " << segmentLength;
+ BMCWEB_LOG_DEBUG("Lockflag : {}", lockFlags);
+ BMCWEB_LOG_DEBUG("SegmentLength : {}", segmentLength);
segInfo.emplace_back(std::make_pair(lockFlags, segmentLength));
}
@@ -455,14 +455,14 @@ inline void
for (auto& i : lockRequestStructure)
{
- BMCWEB_LOG_DEBUG << std::get<0>(i);
- BMCWEB_LOG_DEBUG << std::get<1>(i);
- BMCWEB_LOG_DEBUG << std::get<2>(i);
- BMCWEB_LOG_DEBUG << std::get<3>(i);
+ BMCWEB_LOG_DEBUG("{}", std::get<0>(i));
+ BMCWEB_LOG_DEBUG("{}", std::get<1>(i));
+ BMCWEB_LOG_DEBUG("{}", std::get<2>(i));
+ BMCWEB_LOG_DEBUG("{}", std::get<3>(i));
for (const auto& p : std::get<4>(i))
{
- BMCWEB_LOG_DEBUG << p.first << ", " << p.second;
+ BMCWEB_LOG_DEBUG("{}, {}", p.first, p.second);
}
}
@@ -479,14 +479,14 @@ inline void
if ((!validityStatus.first) && (validityStatus.second == 0))
{
- BMCWEB_LOG_DEBUG << "Not a Valid record";
- BMCWEB_LOG_DEBUG << "Bad json in request";
+ BMCWEB_LOG_DEBUG("Not a Valid record");
+ BMCWEB_LOG_DEBUG("Bad json in request");
asyncResp->res.result(boost::beast::http::status::bad_request);
return;
}
if (validityStatus.first && (validityStatus.second == 1))
{
- BMCWEB_LOG_ERROR << "There is a conflict within itself";
+ BMCWEB_LOG_ERROR("There is a conflict within itself");
asyncResp->res.result(boost::beast::http::status::conflict);
return;
}
@@ -497,7 +497,7 @@ inline void
std::get<crow::ibm_mc_lock::Rc>(varAcquireLock.second);
if (!conflictStatus.first)
{
- BMCWEB_LOG_DEBUG << "There is no conflict with the locktable";
+ BMCWEB_LOG_DEBUG("There is no conflict with the locktable");
asyncResp->res.result(boost::beast::http::status::ok);
auto var = std::get<uint32_t>(conflictStatus.second);
@@ -506,7 +506,7 @@ inline void
asyncResp->res.jsonValue["TransactionID"] = var;
return;
}
- BMCWEB_LOG_DEBUG << "There is a conflict with the lock table";
+ BMCWEB_LOG_DEBUG("There is a conflict with the lock table");
asyncResp->res.result(boost::beast::http::status::conflict);
auto var =
std::get<std::pair<uint32_t, LockRequest>>(conflictStatus.second);
@@ -527,7 +527,7 @@ inline void
}
returnJson["SegmentFlags"] = myarray;
- BMCWEB_LOG_ERROR << "Conflicting lock record: " << returnJson;
+ BMCWEB_LOG_ERROR("Conflicting lock record: {}", returnJson);
asyncResp->res.jsonValue["Record"] = returnJson;
return;
}
@@ -545,11 +545,11 @@ inline void
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
const std::vector<uint32_t>& listTransactionIds)
{
- BMCWEB_LOG_DEBUG << listTransactionIds.size();
- BMCWEB_LOG_DEBUG << "Data is present";
+ BMCWEB_LOG_DEBUG("{}", listTransactionIds.size());
+ BMCWEB_LOG_DEBUG("Data is present");
for (unsigned int listTransactionId : listTransactionIds)
{
- BMCWEB_LOG_DEBUG << listTransactionId;
+ BMCWEB_LOG_DEBUG("{}", listTransactionId);
}
// validate the request ids
@@ -561,7 +561,7 @@ inline void
if (!varReleaselock.first)
{
// validation Failed
- BMCWEB_LOG_ERROR << "handleReleaseLockAPI: validation failed";
+ BMCWEB_LOG_ERROR("handleReleaseLockAPI: validation failed");
asyncResp->res.result(boost::beast::http::status::bad_request);
return;
}
@@ -575,7 +575,7 @@ inline void
}
// valid rid, but the current hmc does not own all the locks
- BMCWEB_LOG_DEBUG << "Current HMC does not own all the locks";
+ BMCWEB_LOG_DEBUG("Current HMC does not own all the locks");
asyncResp->res.result(boost::beast::http::status::unauthorized);
auto var = statusRelease.second;
@@ -596,7 +596,7 @@ inline void
}
returnJson["SegmentFlags"] = myArray;
- BMCWEB_LOG_DEBUG << "handleReleaseLockAPI: lockrecord: " << returnJson;
+ BMCWEB_LOG_DEBUG("handleReleaseLockAPI: lockrecord: {}", returnJson);
asyncResp->res.jsonValue["Record"] = returnJson;
}
@@ -604,7 +604,7 @@ inline void
handleGetLockListAPI(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
const ListOfSessionIds& listSessionIds)
{
- BMCWEB_LOG_DEBUG << listSessionIds.size();
+ BMCWEB_LOG_DEBUG("{}", listSessionIds.size());
auto status =
crow::ibm_mc_lock::Lock::getInstance().getLockList(listSessionIds);
@@ -647,7 +647,7 @@ inline bool isValidConfigFileName(const std::string& fileName,
{
if (fileName.empty())
{
- BMCWEB_LOG_ERROR << "Empty filename";
+ BMCWEB_LOG_ERROR("Empty filename");
res.jsonValue["Description"] = "Empty file path in the url";
return false;
}
@@ -658,7 +658,7 @@ inline bool isValidConfigFileName(const std::string& fileName,
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-");
if (found != std::string::npos)
{
- BMCWEB_LOG_ERROR << "Unsupported character in filename: " << fileName;
+ BMCWEB_LOG_ERROR("Unsupported character in filename: {}", fileName);
res.jsonValue["Description"] = "Unsupported character in filename";
return false;
}
@@ -666,9 +666,9 @@ inline bool isValidConfigFileName(const std::string& fileName,
// Check the filename length
if (fileName.length() > 20)
{
- BMCWEB_LOG_ERROR << "Name must be maximum 20 characters. "
- "Input filename length is: "
- << fileName.length();
+ BMCWEB_LOG_ERROR("Name must be maximum 20 characters. "
+ "Input filename length is: {}",
+ fileName.length());
res.jsonValue["Description"] = "Filename must be maximum 20 characters";
return false;
}
@@ -721,7 +721,7 @@ inline void requestRoutes(App& app)
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
const std::string& fileName) {
- BMCWEB_LOG_DEBUG << "ConfigFile : " << fileName;
+ BMCWEB_LOG_DEBUG("ConfigFile : {}", fileName);
// Validate the incoming fileName
if (!isValidConfigFileName(fileName, asyncResp->res))
{
@@ -748,7 +748,7 @@ inline void requestRoutes(App& app)
if (!redfish::json_util::readJsonAction(req, asyncResp->res, "Request",
body))
{
- BMCWEB_LOG_DEBUG << "Not a Valid JSON";
+ BMCWEB_LOG_DEBUG("Not a Valid JSON");
asyncResp->res.result(boost::beast::http::status::bad_request);
return;
}
@@ -779,8 +779,7 @@ inline void requestRoutes(App& app)
}
else
{
- BMCWEB_LOG_DEBUG << " Value of Type : " << type
- << "is Not a Valid key";
+ BMCWEB_LOG_DEBUG(" Value of Type : {}is Not a Valid key", type);
redfish::messages::propertyValueNotInList(asyncResp->res, type,
"Type");
}
diff --git a/include/ibm/utils.hpp b/include/ibm/utils.hpp
index bb439ee423..31f0a2e802 100644
--- a/include/ibm/utils.hpp
+++ b/include/ibm/utils.hpp
@@ -15,26 +15,26 @@ inline bool createDirectory(std::string_view path)
// Create persistent directory
std::error_code ec;
- BMCWEB_LOG_DEBUG << "Creating persistent directory : " << path;
+ BMCWEB_LOG_DEBUG("Creating persistent directory : {}", path);
bool dirCreated = std::filesystem::create_directories(path, ec);
if (ec)
{
- BMCWEB_LOG_ERROR << "Failed to create persistent directory : " << path;
+ BMCWEB_LOG_ERROR("Failed to create persistent directory : {}", path);
return false;
}
if (dirCreated)
{
// set the permission of the directory to 700
- BMCWEB_LOG_DEBUG << "Setting the permission to 700";
+ BMCWEB_LOG_DEBUG("Setting the permission to 700");
std::filesystem::perms permission = std::filesystem::perms::owner_all;
std::filesystem::permissions(path, permission);
}
else
{
- BMCWEB_LOG_DEBUG << path << " already exists";
+ BMCWEB_LOG_DEBUG("{} already exists", path);
}
return true;
}
diff --git a/include/image_upload.hpp b/include/image_upload.hpp
index cdd7dd47d2..521ff659f6 100644
--- a/include/image_upload.hpp
+++ b/include/image_upload.hpp
@@ -43,11 +43,11 @@ inline void
// expected, we were canceled before the timer completed.
return;
}
- BMCWEB_LOG_ERROR << "Timed out waiting for Version interface";
+ BMCWEB_LOG_ERROR("Timed out waiting for Version interface");
if (ec)
{
- BMCWEB_LOG_ERROR << "Async_wait failed " << ec;
+ BMCWEB_LOG_ERROR("Async_wait failed {}", ec);
return;
}
@@ -60,7 +60,7 @@ inline void
std::function<void(sdbusplus::message_t&)> callback =
[asyncResp](sdbusplus::message_t& m) {
- BMCWEB_LOG_DEBUG << "Match fired";
+ BMCWEB_LOG_DEBUG("Match fired");
sdbusplus::message::object_path path;
dbus::utility::DBusInteracesMap interfaces;
@@ -81,7 +81,7 @@ inline void
asyncResp->res.jsonValue["data"] = leaf;
asyncResp->res.jsonValue["message"] = "200 OK";
asyncResp->res.jsonValue["status"] = "ok";
- BMCWEB_LOG_DEBUG << "ending response";
+ BMCWEB_LOG_DEBUG("ending response");
fwUpdateMatcher = nullptr;
}
};
@@ -92,7 +92,7 @@ inline void
callback);
std::string filepath("/tmp/images/" + bmcweb::getRandomUUID());
- BMCWEB_LOG_DEBUG << "Writing file to " << filepath;
+ BMCWEB_LOG_DEBUG("Writing file to {}", filepath);
std::ofstream out(filepath, std::ofstream::out | std::ofstream::binary |
std::ofstream::trunc);
out << req.body();
diff --git a/include/kvm_websocket.hpp b/include/kvm_websocket.hpp
index 8ea3434832..e3131bb3c2 100644
--- a/include/kvm_websocket.hpp
+++ b/include/kvm_websocket.hpp
@@ -26,9 +26,9 @@ class KvmSession
endpoint, [this, &connIn](const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_ERROR
- << "conn:" << &conn
- << ", Couldn't connect to KVM socket port: " << ec;
+ BMCWEB_LOG_ERROR(
+ "conn:{}, Couldn't connect to KVM socket port: {}",
+ logPtr(&conn), ec);
if (ec != boost::asio::error::operation_aborted)
{
connIn.close("Error in connecting to KVM port");
@@ -44,23 +44,22 @@ class KvmSession
{
if (data.length() > inputBuffer.capacity())
{
- BMCWEB_LOG_ERROR << "conn:" << &conn
- << ", Buffer overrun when writing "
- << data.length() << " bytes";
+ BMCWEB_LOG_ERROR("conn:{}, Buffer overrun when writing {} bytes",
+ logPtr(&conn), data.length());
conn.close("Buffer overrun");
return;
}
- BMCWEB_LOG_DEBUG << "conn:" << &conn << ", Read " << data.size()
- << " bytes from websocket";
+ BMCWEB_LOG_DEBUG("conn:{}, Read {} bytes from websocket", logPtr(&conn),
+ data.size());
boost::asio::buffer_copy(inputBuffer.prepare(data.size()),
boost::asio::buffer(data));
- BMCWEB_LOG_DEBUG << "conn:" << &conn << ", Committing " << data.size()
- << " bytes from websocket";
+ BMCWEB_LOG_DEBUG("conn:{}, Committing {} bytes from websocket",
+ logPtr(&conn), data.size());
inputBuffer.commit(data.size());
- BMCWEB_LOG_DEBUG << "conn:" << &conn << ", inputbuffer size "
- << inputBuffer.size();
+ BMCWEB_LOG_DEBUG("conn:{}, inputbuffer size {}", logPtr(&conn),
+ inputBuffer.size());
doWrite();
}
@@ -68,18 +67,18 @@ class KvmSession
void doRead()
{
std::size_t bytes = outputBuffer.capacity() - outputBuffer.size();
- BMCWEB_LOG_DEBUG << "conn:" << &conn << ", Reading " << bytes
- << " from kvm socket";
+ BMCWEB_LOG_DEBUG("conn:{}, Reading {} from kvm socket", logPtr(&conn),
+ bytes);
hostSocket.async_read_some(
outputBuffer.prepare(outputBuffer.capacity() - outputBuffer.size()),
[this](const boost::system::error_code& ec, std::size_t bytesRead) {
- BMCWEB_LOG_DEBUG << "conn:" << &conn << ", read done. Read "
- << bytesRead << " bytes";
+ BMCWEB_LOG_DEBUG("conn:{}, read done. Read {} bytes",
+ logPtr(&conn), bytesRead);
if (ec)
{
- BMCWEB_LOG_ERROR
- << "conn:" << &conn
- << ", Couldn't read from KVM socket port: " << ec;
+ BMCWEB_LOG_ERROR(
+ "conn:{}, Couldn't read from KVM socket port: {}",
+ logPtr(&conn), ec);
if (ec != boost::asio::error::operation_aborted)
{
conn.close("Error in connecting to KVM port");
@@ -91,8 +90,8 @@ class KvmSession
std::string_view payload(
static_cast<const char*>(outputBuffer.data().data()),
bytesRead);
- BMCWEB_LOG_DEBUG << "conn:" << &conn << ", Sending payload size "
- << payload.size();
+ BMCWEB_LOG_DEBUG("conn:{}, Sending payload size {}", logPtr(&conn),
+ payload.size());
conn.sendBinary(payload);
outputBuffer.consume(bytesRead);
@@ -104,14 +103,14 @@ class KvmSession
{
if (doingWrite)
{
- BMCWEB_LOG_DEBUG << "conn:" << &conn
- << ", Already writing. Bailing out";
+ BMCWEB_LOG_DEBUG("conn:{}, Already writing. Bailing out",
+ logPtr(&conn));
return;
}
if (inputBuffer.size() == 0)
{
- BMCWEB_LOG_DEBUG << "conn:" << &conn
- << ", inputBuffer empty. Bailing out";
+ BMCWEB_LOG_DEBUG("conn:{}, inputBuffer empty. Bailing out",
+ logPtr(&conn));
return;
}
@@ -119,8 +118,8 @@ class KvmSession
hostSocket.async_write_some(inputBuffer.data(),
[this](const boost::system::error_code& ec,
std::size_t bytesWritten) {
- BMCWEB_LOG_DEBUG << "conn:" << &conn << ", Wrote " << bytesWritten
- << "bytes";
+ BMCWEB_LOG_DEBUG("conn:{}, Wrote {}bytes", logPtr(&conn),
+ bytesWritten);
doingWrite = false;
inputBuffer.consume(bytesWritten);
@@ -131,8 +130,8 @@ class KvmSession
}
if (ec)
{
- BMCWEB_LOG_ERROR << "conn:" << &conn
- << ", Error in KVM socket write " << ec;
+ BMCWEB_LOG_ERROR("conn:{}, Error in KVM socket write {}",
+ logPtr(&conn), ec);
if (ec != boost::asio::error::operation_aborted)
{
conn.close("Error in reading to host port");
@@ -164,7 +163,7 @@ inline void requestRoutes(App& app)
.privileges({{"ConfigureComponents", "ConfigureManager"}})
.websocket()
.onopen([](crow::websocket::Connection& conn) {
- BMCWEB_LOG_DEBUG << "Connection " << &conn << " opened";
+ BMCWEB_LOG_DEBUG("Connection {} opened", logPtr(&conn));
if (sessions.size() == maxSessions)
{
diff --git a/include/login_routes.hpp b/include/login_routes.hpp
index 482b613ecf..2ed9951af2 100644
--- a/include/login_routes.hpp
+++ b/include/login_routes.hpp
@@ -41,7 +41,7 @@ inline void requestRoutes(App& app)
false);
if (loginCredentials.is_discarded())
{
- BMCWEB_LOG_DEBUG << "Bad json in request";
+ BMCWEB_LOG_DEBUG("Bad json in request");
asyncResp->res.result(boost::beast::http::status::bad_request);
return;
}
@@ -125,8 +125,8 @@ inline void requestRoutes(App& app)
if (ec != ParserError::PARSER_SUCCESS)
{
// handle error
- BMCWEB_LOG_ERROR << "MIME parse failed, ec : "
- << static_cast<int>(ec);
+ BMCWEB_LOG_ERROR("MIME parse failed, ec : {}",
+ static_cast<int>(ec));
asyncResp->res.result(boost::beast::http::status::bad_request);
return;
}
@@ -137,13 +137,13 @@ inline void requestRoutes(App& app)
formpart.fields.find("Content-Disposition");
if (it == formpart.fields.end())
{
- BMCWEB_LOG_ERROR << "Couldn't find Content-Disposition";
+ BMCWEB_LOG_ERROR("Couldn't find Content-Disposition");
asyncResp->res.result(
boost::beast::http::status::bad_request);
continue;
}
- BMCWEB_LOG_INFO << "Parsing value " << it->value();
+ BMCWEB_LOG_INFO("Parsing value {}", it->value());
if (it->value() == "form-data; name=\"username\"")
{
@@ -155,8 +155,7 @@ inline void requestRoutes(App& app)
}
else
{
- BMCWEB_LOG_INFO << "Extra format, ignore it."
- << it->value();
+ BMCWEB_LOG_INFO("Extra format, ignore it.{}", it->value());
}
}
}
@@ -214,7 +213,7 @@ inline void requestRoutes(App& app)
}
else
{
- BMCWEB_LOG_DEBUG << "Couldn't interpret password";
+ BMCWEB_LOG_DEBUG("Couldn't interpret password");
asyncResp->res.result(boost::beast::http::status::bad_request);
}
});
diff --git a/include/nbd_proxy.hpp b/include/nbd_proxy.hpp
index 62bd324363..5de3039765 100644
--- a/include/nbd_proxy.hpp
+++ b/include/nbd_proxy.hpp
@@ -57,13 +57,13 @@ struct NbdProxyServer : std::enable_shared_from_this<NbdProxyServer>
~NbdProxyServer()
{
- BMCWEB_LOG_DEBUG << "NbdProxyServer destructor";
+ BMCWEB_LOG_DEBUG("NbdProxyServer destructor");
- BMCWEB_LOG_DEBUG << "peerSocket->close()";
+ BMCWEB_LOG_DEBUG("peerSocket->close()");
boost::system::error_code ec;
peerSocket.close(ec);
- BMCWEB_LOG_DEBUG << "std::remove(" << socketId << ")";
+ BMCWEB_LOG_DEBUG("std::remove({})", socketId);
std::remove(socketId.c_str());
crow::connections::systemBus->async_method_call(
@@ -83,12 +83,12 @@ struct NbdProxyServer : std::enable_shared_from_this<NbdProxyServer>
stream_protocol::socket socket) {
if (ec)
{
- BMCWEB_LOG_ERROR << "UNIX socket: async_accept error = "
- << ec.message();
+ BMCWEB_LOG_ERROR("UNIX socket: async_accept error = {}",
+ ec.message());
return;
}
- BMCWEB_LOG_DEBUG << "Connection opened";
+ BMCWEB_LOG_DEBUG("Connection opened");
std::shared_ptr<NbdProxyServer> self = weak.lock();
if (self == nullptr)
{
@@ -110,8 +110,8 @@ struct NbdProxyServer : std::enable_shared_from_this<NbdProxyServer>
}
if (ec)
{
- BMCWEB_LOG_ERROR << "DBus error: cannot call mount method = "
- << ec.message();
+ BMCWEB_LOG_ERROR("DBus error: cannot call mount method = {}",
+ ec.message());
self->connection.close("Failed to mount media");
return;
@@ -142,8 +142,8 @@ struct NbdProxyServer : std::enable_shared_from_this<NbdProxyServer>
size_t bytesRead) {
if (ec)
{
- BMCWEB_LOG_ERROR << "UNIX socket: async_read_some error = "
- << ec.message();
+ BMCWEB_LOG_ERROR("UNIX socket: async_read_some error = {}",
+ ec.message());
return;
}
std::shared_ptr<NbdProxyServer> self = weak.lock();
@@ -172,13 +172,13 @@ struct NbdProxyServer : std::enable_shared_from_this<NbdProxyServer>
{
if (uxWriteInProgress)
{
- BMCWEB_LOG_ERROR << "Write in progress";
+ BMCWEB_LOG_ERROR("Write in progress");
return;
}
if (ws2uxBuf.size() == 0)
{
- BMCWEB_LOG_ERROR << "No data to write to UNIX socket";
+ BMCWEB_LOG_ERROR("No data to write to UNIX socket");
return;
}
@@ -199,8 +199,7 @@ struct NbdProxyServer : std::enable_shared_from_this<NbdProxyServer>
if (ec)
{
- BMCWEB_LOG_ERROR << "UNIX: async_write error = "
- << ec.message();
+ BMCWEB_LOG_ERROR("UNIX: async_write error = {}", ec.message());
self->connection.close("Internal error");
return;
}
@@ -253,7 +252,7 @@ inline void
if (ec)
{
- BMCWEB_LOG_ERROR << "DBus error: " << ec.message();
+ BMCWEB_LOG_ERROR("DBus error: {}", ec.message());
conn.close("Failed to create mount point");
return;
}
@@ -275,7 +274,7 @@ inline void
if (endpointValue == nullptr)
{
- BMCWEB_LOG_ERROR << "EndpointId property value is null";
+ BMCWEB_LOG_ERROR("EndpointId property value is null");
}
}
if (name == "Socket")
@@ -283,7 +282,7 @@ inline void
socketValue = std::get_if<std::string>(&value);
if (socketValue == nullptr)
{
- BMCWEB_LOG_ERROR << "Socket property value is null";
+ BMCWEB_LOG_ERROR("Socket property value is null");
}
}
}
@@ -299,7 +298,7 @@ inline void
if (objects.empty() || endpointObjectPath == nullptr)
{
- BMCWEB_LOG_ERROR << "Cannot find requested EndpointId";
+ BMCWEB_LOG_ERROR("Cannot find requested EndpointId");
conn.close("Failed to match EndpointId");
return;
}
@@ -308,7 +307,7 @@ inline void
{
if (session.second->getEndpointId() == conn.req.target())
{
- BMCWEB_LOG_ERROR << "Cannot open new connection - socket is in use";
+ BMCWEB_LOG_ERROR("Cannot open new connection - socket is in use");
conn.close("Slot is in use");
return;
}
@@ -325,7 +324,7 @@ inline void
};
inline void onOpen(crow::websocket::Connection& conn)
{
- BMCWEB_LOG_DEBUG << "nbd-proxy.onopen(" << &conn << ")";
+ BMCWEB_LOG_DEBUG("nbd-proxy.onopen({})", logPtr(&conn));
sdbusplus::message::object_path path("/xyz/openbmc_project/VirtualMedia");
dbus::utility::getManagedObjects(
@@ -344,11 +343,11 @@ inline void onOpen(crow::websocket::Connection& conn)
inline void onClose(crow::websocket::Connection& conn,
const std::string& reason)
{
- BMCWEB_LOG_DEBUG << "nbd-proxy.onclose(reason = '" << reason << "')";
+ BMCWEB_LOG_DEBUG("nbd-proxy.onclose(reason = '{}')", reason);
auto session = sessions.find(&conn);
if (session == sessions.end())
{
- BMCWEB_LOG_DEBUG << "No session to close";
+ BMCWEB_LOG_DEBUG("No session to close");
return;
}
// Remove reference to session in global map
@@ -359,7 +358,7 @@ inline void onMessage(crow::websocket::Connection& conn, std::string_view data,
crow::websocket::MessageType /*type*/,
std::function<void()>&& whenComplete)
{
- BMCWEB_LOG_DEBUG << "nbd-proxy.onMessage(len = " << data.size() << ")";
+ BMCWEB_LOG_DEBUG("nbd-proxy.onMessage(len = {})", data.size());
// Acquire proxy from sessions
auto session = sessions.find(&conn);
diff --git a/include/obmc_console.hpp b/include/obmc_console.hpp
index f9b978d1f5..2dd3edbf51 100644
--- a/include/obmc_console.hpp
+++ b/include/obmc_console.hpp
@@ -36,13 +36,13 @@ class ConsoleHandler : public std::enable_shared_from_this<ConsoleHandler>
{
if (doingWrite)
{
- BMCWEB_LOG_DEBUG << "Already writing. Bailing out";
+ BMCWEB_LOG_DEBUG("Already writing. Bailing out");
return;
}
if (inputBuffer.empty())
{
- BMCWEB_LOG_DEBUG << "Outbuffer empty. Bailing out";
+ BMCWEB_LOG_DEBUG("Outbuffer empty. Bailing out");
return;
}
@@ -67,8 +67,7 @@ class ConsoleHandler : public std::enable_shared_from_this<ConsoleHandler>
}
if (ec)
{
- BMCWEB_LOG_ERROR << "Error in host serial write "
- << ec.message();
+ BMCWEB_LOG_ERROR("Error in host serial write {}", ec.message());
return;
}
self->doWrite();
@@ -87,12 +86,12 @@ class ConsoleHandler : public std::enable_shared_from_this<ConsoleHandler>
void doRead()
{
- BMCWEB_LOG_DEBUG << "Reading from socket";
+ BMCWEB_LOG_DEBUG("Reading from socket");
hostSocket.async_read_some(
boost::asio::buffer(outputBuffer),
[this, weakSelf(weak_from_this())](
const boost::system::error_code& ec, std::size_t bytesRead) {
- BMCWEB_LOG_DEBUG << "read done. Read " << bytesRead << " bytes";
+ BMCWEB_LOG_DEBUG("read done. Read {} bytes", bytesRead);
std::shared_ptr<ConsoleHandler> self = weakSelf.lock();
if (self == nullptr)
{
@@ -100,8 +99,8 @@ class ConsoleHandler : public std::enable_shared_from_this<ConsoleHandler>
}
if (ec)
{
- BMCWEB_LOG_ERROR << "Couldn't read from host serial port: "
- << ec.message();
+ BMCWEB_LOG_ERROR("Couldn't read from host serial port: {}",
+ ec.message());
conn.close("Error connecting to host port");
return;
}
@@ -120,8 +119,9 @@ class ConsoleHandler : public std::enable_shared_from_this<ConsoleHandler>
if (ec)
{
- BMCWEB_LOG_ERROR << "Failed to assign the DBUS socket"
- << " Socket assign error: " << ec.message();
+ BMCWEB_LOG_ERROR(
+ "Failed to assign the DBUS socket Socket assign error: {}",
+ ec.message());
return false;
}
@@ -155,15 +155,15 @@ inline ObmcConsoleMap& getConsoleHandlerMap()
// then remove the handler from handlers map.
inline void onClose(crow::websocket::Connection& conn, const std::string& err)
{
- BMCWEB_LOG_INFO << "Closing websocket. Reason: " << err;
+ BMCWEB_LOG_INFO("Closing websocket. Reason: {}", err);
auto iter = getConsoleHandlerMap().find(&conn);
if (iter == getConsoleHandlerMap().end())
{
- BMCWEB_LOG_CRITICAL << "Unable to find connection " << &conn;
+ BMCWEB_LOG_CRITICAL("Unable to find connection {}", logPtr(&conn));
return;
}
- BMCWEB_LOG_DEBUG << "Remove connection " << &conn << " from obmc console";
+ BMCWEB_LOG_DEBUG("Remove connection {} from obmc console", logPtr(&conn));
// Removed last connection so remove the path
getConsoleHandlerMap().erase(iter);
@@ -175,8 +175,9 @@ inline void connectConsoleSocket(crow::websocket::Connection& conn,
{
if (ec)
{
- BMCWEB_LOG_ERROR << "Failed to call console Connect() method"
- << " DBUS error: " << ec.message();
+ BMCWEB_LOG_ERROR(
+ "Failed to call console Connect() method DBUS error: {}",
+ ec.message());
conn.close("Failed to connect");
return;
}
@@ -185,20 +186,20 @@ inline void connectConsoleSocket(crow::websocket::Connection& conn,
auto iter = getConsoleHandlerMap().find(&conn);
if (iter == getConsoleHandlerMap().end())
{
- BMCWEB_LOG_ERROR << "Connection was already closed";
+ BMCWEB_LOG_ERROR("Connection was already closed");
return;
}
int fd = dup(unixfd);
if (fd == -1)
{
- BMCWEB_LOG_ERROR << "Failed to dup the DBUS unixfd"
- << " error: " << strerror(errno);
+ BMCWEB_LOG_ERROR("Failed to dup the DBUS unixfd error: {}",
+ strerror(errno));
conn.close("Internal error");
return;
}
- BMCWEB_LOG_DEBUG << "Console unix FD: " << unixfd << " duped FD: " << fd;
+ BMCWEB_LOG_DEBUG("Console duped FD: {}", fd);
if (!iter->second->connect(fd))
{
@@ -217,14 +218,14 @@ inline void
auto iter = getConsoleHandlerMap().find(&conn);
if (iter == getConsoleHandlerMap().end())
{
- BMCWEB_LOG_ERROR << "Connection was already closed";
+ BMCWEB_LOG_ERROR("Connection was already closed");
return;
}
if (ec)
{
- BMCWEB_LOG_WARNING << "getDbusObject() for consoles failed. DBUS error:"
- << ec.message();
+ BMCWEB_LOG_WARNING("getDbusObject() for consoles failed. DBUS error:{}",
+ ec.message());
conn.close("getDbusObject() for consoles failed.");
return;
}
@@ -232,15 +233,15 @@ inline void
const auto valueIface = objInfo.begin();
if (valueIface == objInfo.end())
{
- BMCWEB_LOG_WARNING << "getDbusObject() returned unexpected size: "
- << objInfo.size();
+ BMCWEB_LOG_WARNING("getDbusObject() returned unexpected size: {}",
+ objInfo.size());
conn.close("getDbusObject() returned unexpected size");
return;
}
const std::string& consoleService = valueIface->first;
- BMCWEB_LOG_DEBUG << "Looking up unixFD for Service " << consoleService
- << " Path " << consoleObjPath;
+ BMCWEB_LOG_DEBUG("Looking up unixFD for Service {} Path {}", consoleService,
+ consoleObjPath);
// Call Connect() method to get the unix FD
crow::connections::systemBus->async_method_call(
[&conn](const boost::system::error_code& ec1,
@@ -257,7 +258,7 @@ inline void onOpen(crow::websocket::Connection& conn)
{
std::string consoleLeaf;
- BMCWEB_LOG_DEBUG << "Connection " << &conn << " opened";
+ BMCWEB_LOG_DEBUG("Connection {} opened", logPtr(&conn));
if (getConsoleHandlerMap().size() >= maxSessions)
{
@@ -286,8 +287,8 @@ inline void onOpen(crow::websocket::Connection& conn)
sdbusplus::message::object_path("/xyz/openbmc_project/console") /
consoleLeaf;
- BMCWEB_LOG_DEBUG << "Console Object path = " << consolePath
- << " Request target = " << conn.url().path();
+ BMCWEB_LOG_DEBUG("Console Object path = {} Request target = {}",
+ consolePath, conn.url().path());
// mapper call lambda
constexpr std::array<std::string_view, 1> interfaces = {
@@ -307,7 +308,7 @@ inline void onMessage(crow::websocket::Connection& conn,
auto handler = getConsoleHandlerMap().find(&conn);
if (handler == getConsoleHandlerMap().end())
{
- BMCWEB_LOG_CRITICAL << "Unable to find connection " << &conn;
+ BMCWEB_LOG_CRITICAL("Unable to find connection {}", logPtr(&conn));
return;
}
handler->second->inputBuffer += data;
diff --git a/include/openbmc_dbus_rest.hpp b/include/openbmc_dbus_rest.hpp
index 480736124d..6211fccfa2 100644
--- a/include/openbmc_dbus_rest.hpp
+++ b/include/openbmc_dbus_rest.hpp
@@ -135,10 +135,9 @@ inline void
const std::string& introspectXml) {
if (ec)
{
- BMCWEB_LOG_ERROR
- << "Introspect call failed with error: " << ec.message()
- << " on process: " << processName << " path: " << objectPath
- << "\n";
+ BMCWEB_LOG_ERROR(
+ "Introspect call failed with error: {} on process: {} path: {}",
+ ec.message(), processName, objectPath);
return;
}
nlohmann::json::object_t object;
@@ -152,8 +151,8 @@ inline void
tinyxml2::XMLNode* pRoot = doc.FirstChildElement("node");
if (pRoot == nullptr)
{
- BMCWEB_LOG_ERROR << "XML document failed to parse " << processName
- << " " << objectPath << "\n";
+ BMCWEB_LOG_ERROR("XML document failed to parse {} {}", processName,
+ objectPath);
}
else
{
@@ -186,8 +185,8 @@ inline void getPropertiesForEnumerate(
const std::string& interface,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
{
- BMCWEB_LOG_DEBUG << "getPropertiesForEnumerate " << objectPath << " "
- << service << " " << interface;
+ BMCWEB_LOG_DEBUG("getPropertiesForEnumerate {} {} {}", objectPath, service,
+ interface);
sdbusplus::asio::getAllProperties(
*crow::connections::systemBus, service, objectPath, interface,
@@ -196,9 +195,9 @@ inline void getPropertiesForEnumerate(
const dbus::utility::DBusPropertiesMap& propertiesList) {
if (ec)
{
- BMCWEB_LOG_ERROR << "GetAll on path " << objectPath << " iface "
- << interface << " service " << service
- << " failed with code " << ec;
+ BMCWEB_LOG_ERROR(
+ "GetAll on path {} iface {} service {} failed with code {}",
+ objectPath, interface, service, ec);
return;
}
@@ -236,7 +235,7 @@ inline void findRemainingObjectsForEnumerate(
const std::shared_ptr<dbus::utility::MapperGetSubTreeResponse>& subtree,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
{
- BMCWEB_LOG_DEBUG << "findRemainingObjectsForEnumerate";
+ BMCWEB_LOG_DEBUG("findRemainingObjectsForEnumerate");
const nlohmann::json& dataJson = asyncResp->res.jsonValue["data"];
for (const auto& [path, interface_map] : *subtree)
@@ -280,8 +279,8 @@ struct InProgressEnumerateData
}
catch (...)
{
- BMCWEB_LOG_CRITICAL
- << "findRemainingObjectsForEnumerate threw exception";
+ BMCWEB_LOG_CRITICAL(
+ "findRemainingObjectsForEnumerate threw exception");
}
}
@@ -299,9 +298,9 @@ inline void getManagedObjectsForEnumerate(
const std::string& connectionName,
const std::shared_ptr<InProgressEnumerateData>& transaction)
{
- BMCWEB_LOG_DEBUG << "getManagedObjectsForEnumerate " << objectName
- << " object_manager_path " << objectManagerPath
- << " connection_name " << connectionName;
+ BMCWEB_LOG_DEBUG(
+ "getManagedObjectsForEnumerate {} object_manager_path {} connection_name {}",
+ objectName, objectManagerPath, connectionName);
sdbusplus::message::object_path path(objectManagerPath);
dbus::utility::getManagedObjects(
connectionName, path,
@@ -310,9 +309,9 @@ inline void getManagedObjectsForEnumerate(
const dbus::utility::ManagedObjectType& objects) {
if (ec)
{
- BMCWEB_LOG_ERROR << "GetManagedObjects on path " << objectName
- << " on connection " << connectionName
- << " failed with code " << ec;
+ BMCWEB_LOG_ERROR(
+ "GetManagedObjects on path {} on connection {} failed with code {}",
+ objectName, connectionName, ec);
return;
}
@@ -323,7 +322,7 @@ inline void getManagedObjectsForEnumerate(
{
if (objectPath.first.str.starts_with(objectName))
{
- BMCWEB_LOG_DEBUG << "Reading object " << objectPath.first.str;
+ BMCWEB_LOG_DEBUG("Reading object {}", objectPath.first.str);
nlohmann::json& objectJson = dataJson[objectPath.first.str];
if (objectJson.is_null())
{
@@ -369,16 +368,16 @@ inline void findObjectManagerPathForEnumerate(
const std::string& objectName, const std::string& connectionName,
const std::shared_ptr<InProgressEnumerateData>& transaction)
{
- BMCWEB_LOG_DEBUG << "Finding objectmanager for path " << objectName
- << " on connection:" << connectionName;
+ BMCWEB_LOG_DEBUG("Finding objectmanager for path {} on connection:{}",
+ objectName, connectionName);
crow::connections::systemBus->async_method_call(
[transaction, objectName, connectionName](
const boost::system::error_code& ec,
const dbus::utility::MapperGetAncestorsResponse& objects) {
if (ec)
{
- BMCWEB_LOG_ERROR << "GetAncestors on path " << objectName
- << " failed with code " << ec;
+ BMCWEB_LOG_ERROR("GetAncestors on path {} failed with code {}",
+ objectName, ec);
return;
}
@@ -414,13 +413,13 @@ inline void getObjectAndEnumerate(
const dbus::utility::MapperGetObject& objects) {
if (ec)
{
- BMCWEB_LOG_ERROR << "GetObject for path " << transaction->objectPath
- << " failed with code " << ec;
+ BMCWEB_LOG_ERROR("GetObject for path {} failed with code {}",
+ transaction->objectPath, ec);
return;
}
- BMCWEB_LOG_DEBUG << "GetObject for " << transaction->objectPath
- << " has " << objects.size() << " entries";
+ BMCWEB_LOG_DEBUG("GetObject for {} has {} entries",
+ transaction->objectPath, objects.size());
if (!objects.empty())
{
transaction->subtree->emplace_back(transaction->objectPath,
@@ -437,18 +436,18 @@ inline void getObjectAndEnumerate(
{
for (const auto& interface : connection.second)
{
- BMCWEB_LOG_DEBUG << connection.first << " has interface "
- << interface;
+ BMCWEB_LOG_DEBUG("{} has interface {}", connection.first,
+ interface);
if (interface == "org.freedesktop.DBus.ObjectManager")
{
- BMCWEB_LOG_DEBUG << "found object manager path "
- << object.first;
+ BMCWEB_LOG_DEBUG("found object manager path {}",
+ object.first);
connections[connection.first] = object.first;
}
}
}
}
- BMCWEB_LOG_DEBUG << "Got " << connections.size() << " connections";
+ BMCWEB_LOG_DEBUG("Got {} connections", connections.size());
for (const auto& connection : connections)
{
@@ -596,10 +595,10 @@ inline int convertJsonToDbus(sd_bus_message* m, const std::string& argType,
const nlohmann::json& inputJson)
{
int r = 0;
- BMCWEB_LOG_DEBUG << "Converting "
- << inputJson.dump(2, ' ', true,
- nlohmann::json::error_handler_t::replace)
- << " to type: " << argType;
+ BMCWEB_LOG_DEBUG(
+ "Converting {} to type: {}",
+ inputJson.dump(2, ' ', true, nlohmann::json::error_handler_t::replace),
+ argType);
const std::vector<std::string> argTypes = dbusArgSplit(argType);
// Assume a single object for now.
@@ -840,8 +839,8 @@ inline int convertJsonToDbus(sd_bus_message* m, const std::string& argType,
else if (argCode.starts_with("v"))
{
std::string containedType = argCode.substr(1);
- BMCWEB_LOG_DEBUG << "variant type: " << argCode
- << " appending variant of type: " << containedType;
+ BMCWEB_LOG_DEBUG("variant type: {} appending variant of type: {}",
+ argCode, containedType);
r = sd_bus_message_open_container(m, SD_BUS_TYPE_VARIANT,
containedType.c_str());
if (r < 0)
@@ -947,8 +946,8 @@ int readMessageItem(const std::string& typeCode, sdbusplus::message_t& m,
int r = sd_bus_message_read_basic(m.get(), typeCode.front(), &value);
if (r < 0)
{
- BMCWEB_LOG_ERROR << "sd_bus_message_read_basic on type " << typeCode
- << " failed!";
+ BMCWEB_LOG_ERROR("sd_bus_message_read_basic on type {} failed!",
+ typeCode);
return r;
}
@@ -966,8 +965,8 @@ inline int readDictEntryFromMessage(const std::string& typeCode,
std::vector<std::string> types = dbusArgSplit(typeCode);
if (types.size() != 2)
{
- BMCWEB_LOG_ERROR << "wrong number contained types in dictionary: "
- << types.size();
+ BMCWEB_LOG_ERROR("wrong number contained types in dictionary: {}",
+ types.size());
return -1;
}
@@ -975,7 +974,7 @@ inline int readDictEntryFromMessage(const std::string& typeCode,
typeCode.c_str());
if (r < 0)
{
- BMCWEB_LOG_ERROR << "sd_bus_message_enter_container with rc " << r;
+ BMCWEB_LOG_ERROR("sd_bus_message_enter_container with rc {}", r);
return r;
}
@@ -1011,7 +1010,7 @@ inline int readDictEntryFromMessage(const std::string& typeCode,
r = sd_bus_message_exit_container(m.get());
if (r < 0)
{
- BMCWEB_LOG_ERROR << "sd_bus_message_exit_container failed";
+ BMCWEB_LOG_ERROR("sd_bus_message_exit_container failed");
return r;
}
@@ -1023,8 +1022,7 @@ inline int readArrayFromMessage(const std::string& typeCode,
{
if (typeCode.size() < 2)
{
- BMCWEB_LOG_ERROR << "Type code " << typeCode
- << " too small for an array";
+ BMCWEB_LOG_ERROR("Type code {} too small for an array", typeCode);
return -1;
}
@@ -1034,8 +1032,7 @@ inline int readArrayFromMessage(const std::string& typeCode,
containedType.c_str());
if (r < 0)
{
- BMCWEB_LOG_ERROR << "sd_bus_message_enter_container failed with rc "
- << r;
+ BMCWEB_LOG_ERROR("sd_bus_message_enter_container failed with rc {}", r);
return r;
}
@@ -1057,7 +1054,7 @@ inline int readArrayFromMessage(const std::string& typeCode,
r = sd_bus_message_at_end(m.get(), 0);
if (r < 0)
{
- BMCWEB_LOG_ERROR << "sd_bus_message_at_end failed";
+ BMCWEB_LOG_ERROR("sd_bus_message_at_end failed");
return r;
}
@@ -1090,7 +1087,7 @@ inline int readArrayFromMessage(const std::string& typeCode,
r = sd_bus_message_exit_container(m.get());
if (r < 0)
{
- BMCWEB_LOG_ERROR << "sd_bus_message_exit_container failed";
+ BMCWEB_LOG_ERROR("sd_bus_message_exit_container failed");
return r;
}
@@ -1102,8 +1099,7 @@ inline int readStructFromMessage(const std::string& typeCode,
{
if (typeCode.size() < 3)
{
- BMCWEB_LOG_ERROR << "Type code " << typeCode
- << " too small for a struct";
+ BMCWEB_LOG_ERROR("Type code {} too small for a struct", typeCode);
return -1;
}
@@ -1114,8 +1110,7 @@ inline int readStructFromMessage(const std::string& typeCode,
containedTypes.c_str());
if (r < 0)
{
- BMCWEB_LOG_ERROR << "sd_bus_message_enter_container failed with rc "
- << r;
+ BMCWEB_LOG_ERROR("sd_bus_message_enter_container failed with rc {}", r);
return r;
}
@@ -1132,7 +1127,7 @@ inline int readStructFromMessage(const std::string& typeCode,
r = sd_bus_message_exit_container(m.get());
if (r < 0)
{
- BMCWEB_LOG_ERROR << "sd_bus_message_exit_container failed";
+ BMCWEB_LOG_ERROR("sd_bus_message_exit_container failed");
return r;
}
return 0;
@@ -1144,7 +1139,7 @@ inline int readVariantFromMessage(sdbusplus::message_t& m, nlohmann::json& data)
int r = sd_bus_message_peek_type(m.get(), nullptr, &containerType);
if (r < 0)
{
- BMCWEB_LOG_ERROR << "sd_bus_message_peek_type failed";
+ BMCWEB_LOG_ERROR("sd_bus_message_peek_type failed");
return r;
}
@@ -1152,8 +1147,7 @@ inline int readVariantFromMessage(sdbusplus::message_t& m, nlohmann::json& data)
containerType);
if (r < 0)
{
- BMCWEB_LOG_ERROR << "sd_bus_message_enter_container failed with rc "
- << r;
+ BMCWEB_LOG_ERROR("sd_bus_message_enter_container failed with rc {}", r);
return r;
}
@@ -1166,7 +1160,7 @@ inline int readVariantFromMessage(sdbusplus::message_t& m, nlohmann::json& data)
r = sd_bus_message_exit_container(m.get());
if (r < 0)
{
- BMCWEB_LOG_ERROR << "sd_bus_message_enter_container failed";
+ BMCWEB_LOG_ERROR("sd_bus_message_enter_container failed");
return r;
}
@@ -1304,7 +1298,7 @@ inline int convertDBusToJSON(const std::string& returnType,
}
else
{
- BMCWEB_LOG_ERROR << "Invalid D-Bus signature type " << typeCode;
+ BMCWEB_LOG_ERROR("Invalid D-Bus signature type {}", typeCode);
return -2;
}
}
@@ -1380,18 +1374,17 @@ inline void findActionOnInterface(
const std::shared_ptr<InProgressActionData>& transaction,
const std::string& connectionName)
{
- BMCWEB_LOG_DEBUG << "findActionOnInterface for connection "
- << connectionName;
+ BMCWEB_LOG_DEBUG("findActionOnInterface for connection {}", connectionName);
crow::connections::systemBus->async_method_call(
[transaction, connectionName{std::string(connectionName)}](
const boost::system::error_code& ec,
const std::string& introspectXml) {
- BMCWEB_LOG_DEBUG << "got xml:\n " << introspectXml;
+ BMCWEB_LOG_DEBUG("got xml:\n {}", introspectXml);
if (ec)
{
- BMCWEB_LOG_ERROR
- << "Introspect call failed with error: " << ec.message()
- << " on process: " << connectionName << "\n";
+ BMCWEB_LOG_ERROR(
+ "Introspect call failed with error: {} on process: {}",
+ ec.message(), connectionName);
return;
}
tinyxml2::XMLDocument doc;
@@ -1400,8 +1393,7 @@ inline void findActionOnInterface(
tinyxml2::XMLNode* pRoot = doc.FirstChildElement("node");
if (pRoot == nullptr)
{
- BMCWEB_LOG_ERROR << "XML document failed to parse "
- << connectionName << "\n";
+ BMCWEB_LOG_ERROR("XML document failed to parse {}", connectionName);
return;
}
tinyxml2::XMLElement* interfaceNode =
@@ -1424,13 +1416,13 @@ inline void findActionOnInterface(
while (methodNode != nullptr)
{
const char* thisMethodName = methodNode->Attribute("name");
- BMCWEB_LOG_DEBUG << "Found method: " << thisMethodName;
+ BMCWEB_LOG_DEBUG("Found method: {}", thisMethodName);
if (thisMethodName != nullptr &&
thisMethodName == transaction->methodName)
{
- BMCWEB_LOG_DEBUG << "Found method named "
- << thisMethodName << " on interface "
- << thisInterfaceName;
+ BMCWEB_LOG_DEBUG(
+ "Found method named {} on interface {}",
+ thisMethodName, thisInterfaceName);
sdbusplus::message_t m =
crow::connections::systemBus->new_method_call(
connectionName.c_str(),
@@ -1540,8 +1532,8 @@ inline void handleAction(const crow::Request& req,
const std::string& objectPath,
const std::string& methodName)
{
- BMCWEB_LOG_DEBUG << "handleAction on path: " << objectPath << " and method "
- << methodName;
+ BMCWEB_LOG_DEBUG("handleAction on path: {} and method {}", objectPath,
+ methodName);
nlohmann::json requestDbusData;
JsonParseResult ret = parseRequestAsJson(req, requestDbusData);
@@ -1588,15 +1580,15 @@ inline void handleAction(const crow::Request& req,
interfaceNames) {
if (ec || interfaceNames.empty())
{
- BMCWEB_LOG_ERROR << "Can't find object";
+ BMCWEB_LOG_ERROR("Can't find object");
setErrorResponse(transaction->asyncResp->res,
boost::beast::http::status::not_found,
notFoundDesc, notFoundMsg);
return;
}
- BMCWEB_LOG_DEBUG << "GetObject returned " << interfaceNames.size()
- << " object(s)";
+ BMCWEB_LOG_DEBUG("GetObject returned {} object(s)",
+ interfaceNames.size());
for (const std::pair<std::string, std::vector<std::string>>& object :
interfaceNames)
@@ -1609,7 +1601,7 @@ inline void handleAction(const crow::Request& req,
inline void handleDelete(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
const std::string& objectPath)
{
- BMCWEB_LOG_DEBUG << "handleDelete on path: " << objectPath;
+ BMCWEB_LOG_DEBUG("handleDelete on path: {}", objectPath);
dbus::utility::getDbusObject(
objectPath, {},
@@ -1619,7 +1611,7 @@ inline void handleDelete(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
interfaceNames) {
if (ec || interfaceNames.empty())
{
- BMCWEB_LOG_ERROR << "Can't find object";
+ BMCWEB_LOG_ERROR("Can't find object");
setErrorResponse(asyncResp->res,
boost::beast::http::status::method_not_allowed,
methodNotAllowedDesc, methodNotAllowedMsg);
@@ -1665,7 +1657,7 @@ inline void handleList(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
inline void handleEnumerate(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
const std::string& objectPath)
{
- BMCWEB_LOG_DEBUG << "Doing enumerate on " << objectPath;
+ BMCWEB_LOG_DEBUG("Doing enumerate on {}", objectPath);
asyncResp->res.jsonValue["message"] = "200 OK";
asyncResp->res.jsonValue["status"] = "ok";
@@ -1685,8 +1677,8 @@ inline void handleEnumerate(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
if (ec)
{
- BMCWEB_LOG_ERROR << "GetSubTree failed on "
- << transaction->objectPath;
+ BMCWEB_LOG_ERROR("GetSubTree failed on {}",
+ transaction->objectPath);
setErrorResponse(transaction->asyncResp->res,
boost::beast::http::status::not_found,
notFoundDesc, notFoundMsg);
@@ -1702,7 +1694,7 @@ inline void handleEnumerate(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
inline void handleGet(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
std::string& objectPath, std::string& destProperty)
{
- BMCWEB_LOG_DEBUG << "handleGet: " << objectPath << " prop:" << destProperty;
+ BMCWEB_LOG_DEBUG("handleGet: {} prop:{}", objectPath, destProperty);
std::shared_ptr<std::string> propertyName =
std::make_shared<std::string>(std::move(destProperty));
@@ -1751,8 +1743,7 @@ inline void handleGet(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
sdbusplus::message_t& msg) {
if (ec2)
{
- BMCWEB_LOG_ERROR << "Bad dbus request error: "
- << ec2;
+ BMCWEB_LOG_ERROR("Bad dbus request error: {}", ec2);
}
else
{
@@ -1760,7 +1751,7 @@ inline void handleGet(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
int r = convertDBusToJSON("a{sv}", msg, properties);
if (r < 0)
{
- BMCWEB_LOG_ERROR << "convertDBusToJSON failed";
+ BMCWEB_LOG_ERROR("convertDBusToJSON failed");
}
else
{
@@ -1904,9 +1895,9 @@ inline void handlePut(const crow::Request& req,
const std::string& introspectXml) {
if (ec3)
{
- BMCWEB_LOG_ERROR << "Introspect call failed with error: "
- << ec3.message()
- << " on process: " << connectionName;
+ BMCWEB_LOG_ERROR(
+ "Introspect call failed with error: {} on process: {}",
+ ec3.message(), connectionName);
transaction->setErrorStatus("Unexpected Error");
return;
}
@@ -1916,8 +1907,8 @@ inline void handlePut(const crow::Request& req,
tinyxml2::XMLNode* pRoot = doc.FirstChildElement("node");
if (pRoot == nullptr)
{
- BMCWEB_LOG_ERROR << "XML document failed to parse: "
- << introspectXml;
+ BMCWEB_LOG_ERROR("XML document failed to parse: {}",
+ introspectXml);
transaction->setErrorStatus("Unexpected Error");
return;
}
@@ -1926,13 +1917,13 @@ inline void handlePut(const crow::Request& req,
while (ifaceNode != nullptr)
{
const char* interfaceName = ifaceNode->Attribute("name");
- BMCWEB_LOG_DEBUG << "found interface " << interfaceName;
+ BMCWEB_LOG_DEBUG("found interface {}", interfaceName);
tinyxml2::XMLElement* propNode =
ifaceNode->FirstChildElement("property");
while (propNode != nullptr)
{
const char* propertyName = propNode->Attribute("name");
- BMCWEB_LOG_DEBUG << "Found property " << propertyName;
+ BMCWEB_LOG_DEBUG("Found property {}", propertyName);
if (propertyName == transaction->propertyName)
{
const char* argType = propNode->Attribute("type");
@@ -1987,7 +1978,7 @@ inline void handlePut(const crow::Request& req,
[transaction](
const boost::system::error_code& ec,
sdbusplus::message_t& m2) {
- BMCWEB_LOG_DEBUG << "sent";
+ BMCWEB_LOG_DEBUG("sent");
if (ec)
{
const sd_bus_error* e = m2.get_error();
@@ -2161,10 +2152,9 @@ inline void
const std::string& introspectXml) {
if (ec)
{
- BMCWEB_LOG_ERROR
- << "Introspect call failed with error: " << ec.message()
- << " on process: " << processName << " path: " << objectPath
- << "\n";
+ BMCWEB_LOG_ERROR(
+ "Introspect call failed with error: {} on process: {} path: {}",
+ ec.message(), processName, objectPath);
return;
}
tinyxml2::XMLDocument doc;
@@ -2173,15 +2163,15 @@ inline void
tinyxml2::XMLNode* pRoot = doc.FirstChildElement("node");
if (pRoot == nullptr)
{
- BMCWEB_LOG_ERROR << "XML document failed to parse "
- << processName << " " << objectPath << "\n";
+ BMCWEB_LOG_ERROR("XML document failed to parse {} {}",
+ processName, objectPath);
asyncResp->res.jsonValue["status"] = "XML parse error";
asyncResp->res.result(
boost::beast::http::status::internal_server_error);
return;
}
- BMCWEB_LOG_DEBUG << introspectXml;
+ BMCWEB_LOG_DEBUG("{}", introspectXml);
asyncResp->res.jsonValue["status"] = "ok";
asyncResp->res.jsonValue["bus_name"] = processName;
asyncResp->res.jsonValue["object_path"] = objectPath;
@@ -2216,10 +2206,9 @@ inline void
const std::string& introspectXml) {
if (ec)
{
- BMCWEB_LOG_ERROR
- << "Introspect call failed with error: " << ec.message()
- << " on process: " << processName << " path: " << objectPath
- << "\n";
+ BMCWEB_LOG_ERROR(
+ "Introspect call failed with error: {} on process: {} path: {}",
+ ec.message(), processName, objectPath);
return;
}
tinyxml2::XMLDocument doc;
@@ -2228,8 +2217,8 @@ inline void
tinyxml2::XMLNode* pRoot = doc.FirstChildElement("node");
if (pRoot == nullptr)
{
- BMCWEB_LOG_ERROR << "XML document failed to parse "
- << processName << " " << objectPath << "\n";
+ BMCWEB_LOG_ERROR("XML document failed to parse {} {}",
+ processName, objectPath);
asyncResp->res.result(
boost::beast::http::status::internal_server_error);
return;
@@ -2448,7 +2437,7 @@ inline void requestRoutes(App& app)
std::vector<std::string>& names) {
if (ec)
{
- BMCWEB_LOG_ERROR << "Dbus call failed with code " << ec;
+ BMCWEB_LOG_ERROR("Dbus call failed with code {}", ec);
asyncResp->res.result(
boost::beast::http::status::internal_server_error);
}
@@ -2538,7 +2527,7 @@ inline void requestRoutes(App& app)
if (!std::filesystem::exists(loc) ||
!std::filesystem::is_directory(loc))
{
- BMCWEB_LOG_ERROR << loc.string() << "Not found";
+ BMCWEB_LOG_ERROR("{}Not found", loc.string());
asyncResp->res.result(boost::beast::http::status::not_found);
return;
}
@@ -2565,7 +2554,7 @@ inline void requestRoutes(App& app)
static std::regex dumpFileRegex("[a-zA-Z0-9\\._]+");
if (!std::regex_match(dumpFileName, dumpFileRegex))
{
- BMCWEB_LOG_ERROR << "Invalid dump filename " << dumpFileName;
+ BMCWEB_LOG_ERROR("Invalid dump filename {}", dumpFileName);
asyncResp->res.result(boost::beast::http::status::not_found);
return;
}
diff --git a/include/persistent_data.hpp b/include/persistent_data.hpp
index a08ca7e086..5079a8c151 100644
--- a/include/persistent_data.hpp
+++ b/include/persistent_data.hpp
@@ -57,8 +57,7 @@ class ConfigFile
auto data = nlohmann::json::parse(persistentFile, nullptr, false);
if (data.is_discarded())
{
- BMCWEB_LOG_ERROR
- << "Error parsing persistent data in json file.";
+ BMCWEB_LOG_ERROR("Error parsing persistent data in json file.");
}
else
{
@@ -72,7 +71,7 @@ class ConfigFile
item.value().get_ptr<const uint64_t*>();
if (uintPtr == nullptr)
{
- BMCWEB_LOG_ERROR << "Failed to read revision flag";
+ BMCWEB_LOG_ERROR("Failed to read revision flag");
}
else
{
@@ -103,15 +102,15 @@ class ConfigFile
if (newSession == nullptr)
{
- BMCWEB_LOG_ERROR << "Problem reading session "
- "from persistent store";
+ BMCWEB_LOG_ERROR("Problem reading session "
+ "from persistent store");
continue;
}
- BMCWEB_LOG_DEBUG
- << "Restored session: " << newSession->csrfToken
- << " " << newSession->uniqueId << " "
- << newSession->sessionToken;
+ BMCWEB_LOG_DEBUG("Restored session: {} {} {}",
+ newSession->csrfToken,
+ newSession->uniqueId,
+ newSession->sessionToken);
SessionStore::getInstance().authTokens.emplace(
newSession->sessionToken, newSession);
}
@@ -122,13 +121,13 @@ class ConfigFile
item.value().get_ptr<int64_t*>();
if (jTimeout == nullptr)
{
- BMCWEB_LOG_DEBUG
- << "Problem reading session timeout value";
+ BMCWEB_LOG_DEBUG(
+ "Problem reading session timeout value");
continue;
}
std::chrono::seconds sessionTimeoutInseconds(*jTimeout);
- BMCWEB_LOG_DEBUG << "Restored Session Timeout: "
- << sessionTimeoutInseconds.count();
+ BMCWEB_LOG_DEBUG("Restored Session Timeout: {}",
+ sessionTimeoutInseconds.count());
SessionStore::getInstance().updateSessionTimeout(
sessionTimeoutInseconds);
}
@@ -147,15 +146,14 @@ class ConfigFile
if (newSubscription == nullptr)
{
- BMCWEB_LOG_ERROR
- << "Problem reading subscription "
- "from persistent store";
+ BMCWEB_LOG_ERROR("Problem reading subscription "
+ "from persistent store");
continue;
}
- BMCWEB_LOG_DEBUG << "Restored subscription: "
- << newSubscription->id << " "
- << newSubscription->customText;
+ BMCWEB_LOG_DEBUG("Restored subscription: {} {}",
+ newSubscription->id,
+ newSubscription->customText);
EventServiceStore::getInstance()
.subscriptionsConfigMap.emplace(
newSubscription->id, newSubscription);
@@ -251,8 +249,7 @@ class ConfigFile
std::shared_ptr<UserSubscription> subValue = it.second;
if (subValue->subscriptionType == "SSE")
{
- BMCWEB_LOG_DEBUG
- << "The subscription type is SSE, so skipping.";
+ BMCWEB_LOG_DEBUG("The subscription type is SSE, so skipping.");
continue;
}
nlohmann::json::object_t headers;
diff --git a/include/sessions.hpp b/include/sessions.hpp
index 9179723e5f..cb7f78e78a 100644
--- a/include/sessions.hpp
+++ b/include/sessions.hpp
@@ -72,8 +72,9 @@ struct UserSession
element.value().get_ptr<const std::string*>();
if (thisValue == nullptr)
{
- BMCWEB_LOG_ERROR << "Error reading persistent store. Property "
- << element.key() << " was not of type string";
+ BMCWEB_LOG_ERROR(
+ "Error reading persistent store. Property {} was not of type string",
+ element.key());
continue;
}
if (element.key() == "unique_id")
@@ -103,9 +104,9 @@ struct UserSession
else
{
- BMCWEB_LOG_ERROR
- << "Got unexpected property reading persistent file: "
- << element.key();
+ BMCWEB_LOG_ERROR(
+ "Got unexpected property reading persistent file: {}",
+ element.key());
continue;
}
}
@@ -116,8 +117,8 @@ struct UserSession
if (userSession->uniqueId.empty() || userSession->username.empty() ||
userSession->sessionToken.empty() || userSession->csrfToken.empty())
{
- BMCWEB_LOG_DEBUG << "Session missing required security "
- "information, refusing to restore";
+ BMCWEB_LOG_DEBUG("Session missing required security "
+ "information, refusing to restore");
return nullptr;
}
diff --git a/include/ssl_key_handler.hpp b/include/ssl_key_handler.hpp
index abc9b50d61..f8142cf24b 100644
--- a/include/ssl_key_handler.hpp
+++ b/include/ssl_key_handler.hpp
@@ -1,5 +1,7 @@
#pragma once
+#include "bmcweb_config.h"
+
#include "logging.hpp"
#include "ossl_random.hpp"
@@ -46,7 +48,7 @@ inline bool validateCertificate(X509* const cert)
X509_STORE* x509Store = X509_STORE_new();
if (x509Store == nullptr)
{
- BMCWEB_LOG_ERROR << "Error occurred during X509_STORE_new call";
+ BMCWEB_LOG_ERROR("Error occurred during X509_STORE_new call");
return false;
}
@@ -54,7 +56,7 @@ inline bool validateCertificate(X509* const cert)
X509_STORE_CTX* storeCtx = X509_STORE_CTX_new();
if (storeCtx == nullptr)
{
- BMCWEB_LOG_ERROR << "Error occurred during X509_STORE_CTX_new call";
+ BMCWEB_LOG_ERROR("Error occurred during X509_STORE_CTX_new call");
X509_STORE_free(x509Store);
return false;
}
@@ -62,7 +64,7 @@ inline bool validateCertificate(X509* const cert)
int errCode = X509_STORE_CTX_init(storeCtx, x509Store, cert, nullptr);
if (errCode != 1)
{
- BMCWEB_LOG_ERROR << "Error occurred during X509_STORE_CTX_init call";
+ BMCWEB_LOG_ERROR("Error occurred during X509_STORE_CTX_init call");
X509_STORE_CTX_free(storeCtx);
X509_STORE_free(x509Store);
return false;
@@ -71,7 +73,7 @@ inline bool validateCertificate(X509* const cert)
errCode = X509_verify_cert(storeCtx);
if (errCode == 1)
{
- BMCWEB_LOG_INFO << "Certificate verification is success";
+ BMCWEB_LOG_INFO("Certificate verification is success");
X509_STORE_CTX_free(storeCtx);
X509_STORE_free(x509Store);
return true;
@@ -83,18 +85,17 @@ inline bool validateCertificate(X509* const cert)
X509_STORE_free(x509Store);
if (isTrustChainError(errCode))
{
- BMCWEB_LOG_DEBUG << "Ignoring Trust Chain error. Reason: "
- << X509_verify_cert_error_string(errCode);
+ BMCWEB_LOG_DEBUG("Ignoring Trust Chain error. Reason: {}",
+ X509_verify_cert_error_string(errCode));
return true;
}
- BMCWEB_LOG_ERROR << "Certificate verification failed. Reason: "
- << X509_verify_cert_error_string(errCode);
+ BMCWEB_LOG_ERROR("Certificate verification failed. Reason: {}",
+ X509_verify_cert_error_string(errCode));
return false;
}
- BMCWEB_LOG_ERROR
- << "Error occurred during X509_verify_cert call. ErrorCode: "
- << errCode;
+ BMCWEB_LOG_ERROR(
+ "Error occurred during X509_verify_cert call. ErrorCode: {}", errCode);
X509_STORE_CTX_free(storeCtx);
X509_STORE_free(x509Store);
return false;
@@ -203,24 +204,24 @@ inline X509* loadCert(const std::string& filePath)
BIO* certFileBio = BIO_new_file(filePath.c_str(), "rb");
if (certFileBio == nullptr)
{
- BMCWEB_LOG_ERROR << "Error occured during BIO_new_file call, "
- << "FILE= " << filePath;
+ BMCWEB_LOG_ERROR("Error occured during BIO_new_file call, FILE= {}",
+ filePath);
return nullptr;
}
X509* cert = X509_new();
if (cert == nullptr)
{
- BMCWEB_LOG_ERROR << "Error occured during X509_new call, "
- << ERR_get_error();
+ BMCWEB_LOG_ERROR("Error occured during X509_new call, {}",
+ ERR_get_error());
BIO_free(certFileBio);
return nullptr;
}
if (PEM_read_bio_X509(certFileBio, &cert, nullptr, nullptr) == nullptr)
{
- BMCWEB_LOG_ERROR << "Error occured during PEM_read_bio_X509 call, "
- << "FILE= " << filePath;
+ BMCWEB_LOG_ERROR(
+ "Error occured during PEM_read_bio_X509 call, FILE= {}", filePath);
BIO_free(certFileBio);
X509_free(cert);
@@ -240,7 +241,7 @@ inline int addExt(X509* cert, int nid, const char* value)
ex = X509V3_EXT_conf_nid(nullptr, &ctx, nid, const_cast<char*>(value));
if (ex == nullptr)
{
- BMCWEB_LOG_ERROR << "Error: In X509V3_EXT_conf_nidn: " << value;
+ BMCWEB_LOG_ERROR("Error: In X509V3_EXT_conf_nidn: {}", value);
return -1;
}
X509_add_ext(cert, ex, -1);
@@ -476,7 +477,7 @@ inline std::shared_ptr<boost::asio::ssl::context>
SSL_CTX_set_options(mSslContext->native_handle(), SSL_OP_NO_RENEGOTIATION);
- BMCWEB_LOG_DEBUG << "Using default TrustStore location: " << trustStorePath;
+ BMCWEB_LOG_DEBUG("Using default TrustStore location: {}", trustStorePath);
mSslContext->add_verify_path(trustStorePath);
mSslContext->use_certificate_file(sslPemFile,
@@ -497,9 +498,7 @@ inline std::shared_ptr<boost::asio::ssl::context>
// drop, use the right way
// http://stackoverflow.com/questions/18929049/boost-asio-with-ecdsa-certificate-issue
if (SSL_CTX_set_ecdh_auto(mSslContext->native_handle(), 1) != 1)
- {
- BMCWEB_LOG_ERROR << "Error setting tmp ecdh list\n";
- }
+ {}
// Mozilla intermediate cipher suites v5.7
// Sourced from: https://ssl-config.mozilla.org/guidelines/5.7.json
@@ -516,7 +515,7 @@ inline std::shared_ptr<boost::asio::ssl::context>
if (SSL_CTX_set_cipher_list(mSslContext->native_handle(),
mozillaIntermediate) != 1)
{
- BMCWEB_LOG_ERROR << "Error setting cipher list\n";
+ BMCWEB_LOG_ERROR("Error setting cipher list");
}
return mSslContext;
}
@@ -537,7 +536,7 @@ inline std::optional<boost::asio::ssl::context> getSSLClientContext()
ec);
if (ec)
{
- BMCWEB_LOG_ERROR << "SSL context set_options failed";
+ BMCWEB_LOG_ERROR("SSL context set_options failed");
return std::nullopt;
}
@@ -546,7 +545,7 @@ inline std::optional<boost::asio::ssl::context> getSSLClientContext()
sslCtx.set_default_verify_paths(ec);
if (ec)
{
- BMCWEB_LOG_ERROR << "SSL context set_default_verify failed";
+ BMCWEB_LOG_ERROR("SSL context set_default_verify failed");
return std::nullopt;
}
@@ -554,7 +553,7 @@ inline std::optional<boost::asio::ssl::context> getSSLClientContext()
sslCtx.set_verify_mode(boost::asio::ssl::verify_peer, ec);
if (ec)
{
- BMCWEB_LOG_ERROR << "SSL context set_verify_mode failed";
+ BMCWEB_LOG_ERROR("SSL context set_verify_mode failed");
return std::nullopt;
}
@@ -574,7 +573,7 @@ inline std::optional<boost::asio::ssl::context> getSSLClientContext()
if (SSL_CTX_set_cipher_list(sslCtx.native_handle(), sslCiphers) != 1)
{
- BMCWEB_LOG_ERROR << "SSL_CTX_set_cipher_list failed";
+ BMCWEB_LOG_ERROR("SSL_CTX_set_cipher_list failed");
return std::nullopt;
}
diff --git a/include/vm_websocket.hpp b/include/vm_websocket.hpp
index 1e1b7e13d1..1b06a93db8 100644
--- a/include/vm_websocket.hpp
+++ b/include/vm_websocket.hpp
@@ -46,7 +46,7 @@ class Handler : public std::enable_shared_from_this<Handler>
int rc = kill(proxy.id(), SIGTERM);
if (rc != 0)
{
- BMCWEB_LOG_ERROR << "Failed to terminate nbd-proxy: " << errno;
+ BMCWEB_LOG_ERROR("Failed to terminate nbd-proxy: {}", errno);
return;
}
@@ -61,8 +61,7 @@ class Handler : public std::enable_shared_from_this<Handler>
boost::process::std_in < pipeIn, ec);
if (ec)
{
- BMCWEB_LOG_ERROR << "Couldn't connect to nbd-proxy: "
- << ec.message();
+ BMCWEB_LOG_ERROR("Couldn't connect to nbd-proxy: {}", ec.message());
if (session != nullptr)
{
session->close("Error connecting to nbd-proxy");
@@ -77,13 +76,13 @@ class Handler : public std::enable_shared_from_this<Handler>
{
if (doingWrite)
{
- BMCWEB_LOG_DEBUG << "Already writing. Bailing out";
+ BMCWEB_LOG_DEBUG("Already writing. Bailing out");
return;
}
if (inputBuffer->size() == 0)
{
- BMCWEB_LOG_DEBUG << "inputBuffer empty. Bailing out";
+ BMCWEB_LOG_DEBUG("inputBuffer empty. Bailing out");
return;
}
@@ -92,7 +91,7 @@ class Handler : public std::enable_shared_from_this<Handler>
inputBuffer->data(),
[this, self(shared_from_this())](const boost::beast::error_code& ec,
std::size_t bytesWritten) {
- BMCWEB_LOG_DEBUG << "Wrote " << bytesWritten << "bytes";
+ BMCWEB_LOG_DEBUG("Wrote {}bytes", bytesWritten);
doingWrite = false;
inputBuffer->consume(bytesWritten);
@@ -108,7 +107,7 @@ class Handler : public std::enable_shared_from_this<Handler>
if (ec)
{
session->close("Error in writing to proxy port");
- BMCWEB_LOG_ERROR << "Error in VM socket write " << ec;
+ BMCWEB_LOG_ERROR("Error in VM socket write {}", ec);
return;
}
doWrite();
@@ -123,10 +122,10 @@ class Handler : public std::enable_shared_from_this<Handler>
outputBuffer->prepare(bytes),
[this, self(shared_from_this())](
const boost::system::error_code& ec, std::size_t bytesRead) {
- BMCWEB_LOG_DEBUG << "Read done. Read " << bytesRead << " bytes";
+ BMCWEB_LOG_DEBUG("Read done. Read {} bytes", bytesRead);
if (ec)
{
- BMCWEB_LOG_ERROR << "Couldn't read from VM port: " << ec;
+ BMCWEB_LOG_ERROR("Couldn't read from VM port: {}", ec);
if (session != nullptr)
{
session->close("Error in connecting to VM port");
@@ -170,7 +169,7 @@ inline void requestRoutes(App& app)
.privileges({{"ConfigureComponents", "ConfigureManager"}})
.websocket()
.onopen([](crow::websocket::Connection& conn) {
- BMCWEB_LOG_DEBUG << "Connection " << &conn << " opened";
+ BMCWEB_LOG_DEBUG("Connection {} opened", logPtr(&conn));
if (session != nullptr)
{
@@ -210,8 +209,8 @@ inline void requestRoutes(App& app)
if (data.length() >
handler->inputBuffer->capacity() - handler->inputBuffer->size())
{
- BMCWEB_LOG_ERROR << "Buffer overrun when writing "
- << data.length() << " bytes";
+ BMCWEB_LOG_ERROR("Buffer overrun when writing {} bytes",
+ data.length());
conn.close("Buffer overrun");
return;
}
diff --git a/include/webassets.hpp b/include/webassets.hpp
index ca4137448f..4deb7a78ee 100644
--- a/include/webassets.hpp
+++ b/include/webassets.hpp
@@ -57,8 +57,9 @@ inline void requestRoutes(App& app)
std::filesystem::recursive_directory_iterator dirIter(rootpath, ec);
if (ec)
{
- BMCWEB_LOG_ERROR << "Unable to find or open " << rootpath.string()
- << " static file hosting disabled";
+ BMCWEB_LOG_ERROR(
+ "Unable to find or open {} static file hosting disabled",
+ rootpath.string());
return;
}
@@ -117,7 +118,7 @@ inline void requestRoutes(App& app)
{
// Got a duplicated path. This is expected in certain
// situations
- BMCWEB_LOG_DEBUG << "Got duplicated path " << webpath.string();
+ BMCWEB_LOG_DEBUG("Got duplicated path {}", webpath.string());
continue;
}
const char* contentType = nullptr;
@@ -136,9 +137,9 @@ inline void requestRoutes(App& app)
if (contentType == nullptr)
{
- BMCWEB_LOG_ERROR << "Cannot determine content-type for "
- << absolutePath.string() << " with extension "
- << extension;
+ BMCWEB_LOG_ERROR(
+ "Cannot determine content-type for {} with extension {}",
+ absolutePath.string(), extension);
}
if (webpath == "/")
@@ -167,7 +168,7 @@ inline void requestRoutes(App& app)
std::ifstream inf(absolutePath);
if (!inf)
{
- BMCWEB_LOG_DEBUG << "failed to read file";
+ BMCWEB_LOG_DEBUG("failed to read file");
asyncResp->res.result(
boost::beast::http::status::internal_server_error);
return;
diff --git a/redfish-core/include/event_service_manager.hpp b/redfish-core/include/event_service_manager.hpp
index a1c4fb9fe1..00d77c8767 100644
--- a/redfish-core/include/event_service_manager.hpp
+++ b/redfish-core/include/event_service_manager.hpp
@@ -287,13 +287,13 @@ inline bool
// NOLINTNEXTLINE
bmcweb::split(result, sseFilter, ' ');
- BMCWEB_LOG_DEBUG << "No of tokens in SEE query: " << result.size();
+ BMCWEB_LOG_DEBUG("No of tokens in SEE query: {}", result.size());
constexpr uint8_t divisor = 4;
constexpr uint8_t minTokenSize = 3;
if (result.size() % divisor != minTokenSize)
{
- BMCWEB_LOG_ERROR << "Invalid SSE filter specified.";
+ BMCWEB_LOG_ERROR("Invalid SSE filter specified.");
return false;
}
@@ -309,8 +309,8 @@ inline bool
// SSE supports only "or" and "and" in query params.
if ((separator != "or") && (separator != "and"))
{
- BMCWEB_LOG_ERROR
- << "Invalid group operator in SSE query parameters";
+ BMCWEB_LOG_ERROR(
+ "Invalid group operator in SSE query parameters");
return false;
}
}
@@ -318,12 +318,12 @@ inline bool
// SSE supports only "eq" as per spec.
if (op != "eq")
{
- BMCWEB_LOG_ERROR
- << "Invalid assignment operator in SSE query parameters";
+ BMCWEB_LOG_ERROR(
+ "Invalid assignment operator in SSE query parameters");
return false;
}
- BMCWEB_LOG_DEBUG << key << " : " << value;
+ BMCWEB_LOG_DEBUG("{} : {}", key, value);
if (key == "EventFormatType")
{
formatType = value;
@@ -342,8 +342,7 @@ inline bool
}
else
{
- BMCWEB_LOG_ERROR << "Invalid property(" << key
- << ")in SSE filter query.";
+ BMCWEB_LOG_ERROR("Invalid property({})in SSE filter query.", key);
return false;
}
}
@@ -477,14 +476,14 @@ class Subscription : public persistent_data::UserSubscription
messageArgsView, timestamp,
customText, bmcLogEntry) != 0)
{
- BMCWEB_LOG_DEBUG << "Read eventLog entry failed";
+ BMCWEB_LOG_DEBUG("Read eventLog entry failed");
continue;
}
}
if (logEntryArray.empty())
{
- BMCWEB_LOG_DEBUG << "No log entries available to be transferred.";
+ BMCWEB_LOG_DEBUG("No log entries available to be transferred.");
return;
}
@@ -521,9 +520,9 @@ class Subscription : public persistent_data::UserSubscription
nlohmann::json msg;
if (!telemetry::fillReport(msg, reportId, var))
{
- BMCWEB_LOG_ERROR << "Failed to fill the MetricReport for DBus "
- "Report with id "
- << reportId;
+ BMCWEB_LOG_ERROR("Failed to fill the MetricReport for DBus "
+ "Report with id {}",
+ reportId);
return;
}
@@ -553,7 +552,7 @@ class Subscription : public persistent_data::UserSubscription
void setSubscriptionId(const std::string& id2)
{
- BMCWEB_LOG_DEBUG << "Subscription ID: " << id2;
+ BMCWEB_LOG_DEBUG("Subscription ID: {}", id2);
subId = id2;
}
@@ -582,8 +581,8 @@ class Subscription : public persistent_data::UserSubscription
// policy. 2XX is considered acceptable
static boost::system::error_code retryRespHandler(unsigned int respCode)
{
- BMCWEB_LOG_DEBUG
- << "Checking response code validity for SubscriptionEvent";
+ BMCWEB_LOG_DEBUG(
+ "Checking response code validity for SubscriptionEvent");
if ((respCode < 200) || (respCode >= 300))
{
return boost::system::errc::make_error_code(
@@ -661,8 +660,8 @@ class EventServiceManager
if (!status)
{
- BMCWEB_LOG_ERROR
- << "Failed to validate and split destination url";
+ BMCWEB_LOG_ERROR(
+ "Failed to validate and split destination url");
continue;
}
std::shared_ptr<Subscription> subValue =
@@ -683,7 +682,7 @@ class EventServiceManager
if (subValue->id.empty())
{
- BMCWEB_LOG_ERROR << "Failed to add subscription";
+ BMCWEB_LOG_ERROR("Failed to add subscription");
}
subscriptionsMap.insert(std::pair(subValue->id, subValue));
@@ -704,13 +703,13 @@ class EventServiceManager
std::ifstream eventConfigFile(eventServiceFile);
if (!eventConfigFile.good())
{
- BMCWEB_LOG_DEBUG << "Old eventService config not exist";
+ BMCWEB_LOG_DEBUG("Old eventService config not exist");
return;
}
auto jsonData = nlohmann::json::parse(eventConfigFile, nullptr, false);
if (jsonData.is_discarded())
{
- BMCWEB_LOG_ERROR << "Old eventService config parse error.";
+ BMCWEB_LOG_ERROR("Old eventService config parse error.");
return;
}
@@ -732,8 +731,8 @@ class EventServiceManager
true);
if (newSubscription == nullptr)
{
- BMCWEB_LOG_ERROR << "Problem reading subscription "
- "from old persistent store";
+ BMCWEB_LOG_ERROR("Problem reading subscription "
+ "from old persistent store");
continue;
}
@@ -765,9 +764,9 @@ class EventServiceManager
if (retry <= 0)
{
- BMCWEB_LOG_ERROR
- << "Failed to generate random number from old "
- "persistent store";
+ BMCWEB_LOG_ERROR(
+ "Failed to generate random number from old "
+ "persistent store");
continue;
}
}
@@ -775,7 +774,7 @@ class EventServiceManager
persistent_data::getConfig().writeData();
std::remove(eventServiceFile);
- BMCWEB_LOG_DEBUG << "Remove old eventservice config";
+ BMCWEB_LOG_DEBUG("Remove old eventservice config");
}
}
@@ -878,7 +877,7 @@ class EventServiceManager
auto obj = subscriptionsMap.find(id);
if (obj == subscriptionsMap.end())
{
- BMCWEB_LOG_ERROR << "No subscription exist with ID:" << id;
+ BMCWEB_LOG_ERROR("No subscription exist with ID:{}", id);
return nullptr;
}
std::shared_ptr<Subscription> subValue = obj->second;
@@ -912,7 +911,7 @@ class EventServiceManager
if (retry <= 0)
{
- BMCWEB_LOG_ERROR << "Failed to generate random number";
+ BMCWEB_LOG_ERROR("Failed to generate random number");
return "";
}
@@ -1024,7 +1023,7 @@ class EventServiceManager
std::shared_ptr<Subscription> entry = it.second;
if (entry->destinationUrl == destUrl)
{
- BMCWEB_LOG_ERROR << "Destination exist already" << destUrl;
+ BMCWEB_LOG_ERROR("Destination exist already{}", destUrl);
return true;
}
}
@@ -1049,7 +1048,7 @@ class EventServiceManager
{
if (!serviceEnabled || (noOfEventLogSubscribers == 0U))
{
- BMCWEB_LOG_DEBUG << "EventService disabled or no Subscriptions.";
+ BMCWEB_LOG_DEBUG("EventService disabled or no Subscriptions.");
return;
}
nlohmann::json eventRecord = nlohmann::json::array();
@@ -1076,8 +1075,9 @@ class EventServiceManager
{
if (resType == resource)
{
- BMCWEB_LOG_INFO << "ResourceType " << resource
- << " found in the subscribed list";
+ BMCWEB_LOG_INFO(
+ "ResourceType {} found in the subscribed list",
+ resource);
isSubscribed = true;
break;
}
@@ -1103,7 +1103,7 @@ class EventServiceManager
}
else
{
- BMCWEB_LOG_INFO << "Not subscribed to this resource";
+ BMCWEB_LOG_INFO("Not subscribed to this resource");
}
}
}
@@ -1124,7 +1124,7 @@ class EventServiceManager
std::ifstream logStream(redfishEventLogFile);
if (!logStream.good())
{
- BMCWEB_LOG_ERROR << " Redfish log file open failed \n";
+ BMCWEB_LOG_ERROR(" Redfish log file open failed ");
return;
}
std::string logEntry;
@@ -1132,8 +1132,6 @@ class EventServiceManager
{
redfishLogFilePosition = logStream.tellg();
}
-
- BMCWEB_LOG_DEBUG << "Next Log Position : " << redfishLogFilePosition;
}
void readEventLogsFromFile()
@@ -1141,7 +1139,7 @@ class EventServiceManager
std::ifstream logStream(redfishEventLogFile);
if (!logStream.good())
{
- BMCWEB_LOG_ERROR << " Redfish log file open failed";
+ BMCWEB_LOG_ERROR(" Redfish log file open failed");
return;
}
@@ -1177,7 +1175,7 @@ class EventServiceManager
if (event_log::getEventLogParams(logEntry, timestamp, messageID,
messageArgs) != 0)
{
- BMCWEB_LOG_DEBUG << "Read eventLog entry params failed";
+ BMCWEB_LOG_DEBUG("Read eventLog entry params failed");
continue;
}
@@ -1196,14 +1194,14 @@ class EventServiceManager
if (!serviceEnabled || noOfEventLogSubscribers == 0)
{
- BMCWEB_LOG_DEBUG << "EventService disabled or no Subscriptions.";
+ BMCWEB_LOG_DEBUG("EventService disabled or no Subscriptions.");
return;
}
if (eventRecords.empty())
{
// No Records to send
- BMCWEB_LOG_DEBUG << "No log entries available to be transferred.";
+ BMCWEB_LOG_DEBUG("No log entries available to be transferred.");
return;
}
@@ -1231,7 +1229,7 @@ class EventServiceManager
const std::size_t& bytesTransferred) {
if (ec)
{
- BMCWEB_LOG_ERROR << "Callback Error: " << ec.message();
+ BMCWEB_LOG_ERROR("Callback Error: {}", ec.message());
return;
}
std::size_t index = 0;
@@ -1256,16 +1254,16 @@ class EventServiceManager
continue;
}
- BMCWEB_LOG_DEBUG
- << "Redfish log file created/deleted. event.name: "
- << fileName;
+ BMCWEB_LOG_DEBUG(
+ "Redfish log file created/deleted. event.name: {}",
+ fileName);
if (event.mask == IN_CREATE)
{
if (fileWatchDesc != -1)
{
- BMCWEB_LOG_DEBUG
- << "Remove and Add inotify watcher on "
- "redfish event log file";
+ BMCWEB_LOG_DEBUG(
+ "Remove and Add inotify watcher on "
+ "redfish event log file");
// Remove existing inotify watcher and add
// with new redfish event log file.
inotify_rm_watch(inotifyFd, fileWatchDesc);
@@ -1276,8 +1274,8 @@ class EventServiceManager
inotifyFd, redfishEventLogFile, IN_MODIFY);
if (fileWatchDesc == -1)
{
- BMCWEB_LOG_ERROR << "inotify_add_watch failed for "
- "redfish log file.";
+ BMCWEB_LOG_ERROR("inotify_add_watch failed for "
+ "redfish log file.");
return;
}
@@ -1317,7 +1315,7 @@ class EventServiceManager
inotifyFd = inotify_init1(IN_NONBLOCK);
if (inotifyFd == -1)
{
- BMCWEB_LOG_ERROR << "inotify_init1 failed.";
+ BMCWEB_LOG_ERROR("inotify_init1 failed.");
return -1;
}
@@ -1327,8 +1325,8 @@ class EventServiceManager
IN_CREATE | IN_MOVED_TO | IN_DELETE);
if (dirWatchDesc == -1)
{
- BMCWEB_LOG_ERROR
- << "inotify_add_watch failed for event log directory.";
+ BMCWEB_LOG_ERROR(
+ "inotify_add_watch failed for event log directory.");
return -1;
}
@@ -1337,8 +1335,7 @@ class EventServiceManager
IN_MODIFY);
if (fileWatchDesc == -1)
{
- BMCWEB_LOG_ERROR
- << "inotify_add_watch failed for redfish log file.";
+ BMCWEB_LOG_ERROR("inotify_add_watch failed for redfish log file.");
// Don't return error if file not exist.
// Watch on directory will handle create/delete of file.
}
@@ -1355,7 +1352,7 @@ class EventServiceManager
{
if (msg.is_method_error())
{
- BMCWEB_LOG_ERROR << "TelemetryMonitor Signal error";
+ BMCWEB_LOG_ERROR("TelemetryMonitor Signal error");
return;
}
@@ -1363,7 +1360,7 @@ class EventServiceManager
std::string id = path.filename();
if (id.empty())
{
- BMCWEB_LOG_ERROR << "Failed to get Id from path";
+ BMCWEB_LOG_ERROR("Failed to get Id from path");
return;
}
@@ -1377,7 +1374,7 @@ class EventServiceManager
[](const auto& x) { return x.first == "Readings"; });
if (found == props.end())
{
- BMCWEB_LOG_INFO << "Failed to get Readings from Report properties";
+ BMCWEB_LOG_INFO("Failed to get Readings from Report properties");
return;
}
@@ -1385,7 +1382,7 @@ class EventServiceManager
std::get_if<telemetry::TimestampReadings>(&found->second);
if (readings == nullptr)
{
- BMCWEB_LOG_INFO << "Failed to get Readings from Report properties";
+ BMCWEB_LOG_INFO("Failed to get Readings from Report properties");
return;
}
@@ -1404,7 +1401,7 @@ class EventServiceManager
{
if (matchTelemetryMonitor)
{
- BMCWEB_LOG_DEBUG << "Metrics report signal - Unregister";
+ BMCWEB_LOG_DEBUG("Metrics report signal - Unregister");
matchTelemetryMonitor.reset();
matchTelemetryMonitor = nullptr;
}
@@ -1414,11 +1411,11 @@ class EventServiceManager
{
if (!serviceEnabled || matchTelemetryMonitor)
{
- BMCWEB_LOG_DEBUG << "Not registering metric report signal.";
+ BMCWEB_LOG_DEBUG("Not registering metric report signal.");
return;
}
- BMCWEB_LOG_DEBUG << "Metrics report signal - Register";
+ BMCWEB_LOG_DEBUG("Metrics report signal - Register");
std::string matchStr = "type='signal',member='PropertiesChanged',"
"interface='org.freedesktop.DBus.Properties',"
"arg0=xyz.openbmc_project.Telemetry.Report";
diff --git a/redfish-core/include/gzfile.hpp b/redfish-core/include/gzfile.hpp
index 34bc151ef5..3fa1e49e34 100644
--- a/redfish-core/include/gzfile.hpp
+++ b/redfish-core/include/gzfile.hpp
@@ -18,7 +18,7 @@ class GzFileReader
gzFile logStream = gzopen(filename.c_str(), "r");
if (logStream == nullptr)
{
- BMCWEB_LOG_ERROR << "Can't open gz file: " << filename << '\n';
+ BMCWEB_LOG_ERROR("Can't open gz file: {}", filename);
return false;
}
@@ -46,9 +46,9 @@ class GzFileReader
int errNum = 0;
const char* errMsg = gzerror(logStream, &errNum);
- BMCWEB_LOG_ERROR << "Error reading gz compressed data.\n"
- << "Error Message: " << errMsg << '\n'
- << "Error Number: " << errNum;
+ BMCWEB_LOG_ERROR(
+ "Error reading gz compressed data.\nError Message: {}\nError Number: {}",
+ errMsg, errNum);
}
bool readFile(gzFile logStream, uint64_t skip, uint64_t top,
@@ -71,7 +71,7 @@ class GzFileReader
bufferStr.resize(static_cast<size_t>(bytesRead));
if (!hostLogEntryParser(bufferStr, skip, top, logEntries, logCount))
{
- BMCWEB_LOG_ERROR << "Error occurs during parsing host log.\n";
+ BMCWEB_LOG_ERROR("Error occurs during parsing host log.");
return false;
}
} while (gzeof(logStream) != 1);
@@ -114,9 +114,9 @@ class GzFileReader
totalFilesSize += logEntry.size();
if (totalFilesSize > maxTotalFilesSize)
{
- BMCWEB_LOG_ERROR
- << "File size exceeds maximum allowed size of "
- << maxTotalFilesSize;
+ BMCWEB_LOG_ERROR(
+ "File size exceeds maximum allowed size of {}",
+ maxTotalFilesSize);
return false;
}
logEntries.push_back(logEntry);
@@ -145,9 +145,9 @@ class GzFileReader
totalFilesSize++;
if (totalFilesSize > maxTotalFilesSize)
{
- BMCWEB_LOG_ERROR
- << "File size exceeds maximum allowed size of "
- << maxTotalFilesSize;
+ BMCWEB_LOG_ERROR(
+ "File size exceeds maximum allowed size of {}",
+ maxTotalFilesSize);
return false;
}
logEntries.emplace_back("\n");
@@ -188,9 +188,9 @@ class GzFileReader
size_t tmpMessageSize = totalFilesSize + lastMessage.size();
if (tmpMessageSize > maxTotalFilesSize)
{
- BMCWEB_LOG_ERROR
- << "File size exceeds maximum allowed size of "
- << maxTotalFilesSize;
+ BMCWEB_LOG_ERROR(
+ "File size exceeds maximum allowed size of {}",
+ maxTotalFilesSize);
return false;
}
}
diff --git a/redfish-core/include/privileges.hpp b/redfish-core/include/privileges.hpp
index bb2c2f3024..8b4220847b 100644
--- a/redfish-core/include/privileges.hpp
+++ b/redfish-core/include/privileges.hpp
@@ -102,8 +102,8 @@ class Privileges
{
if (!setSinglePrivilege(privilege))
{
- BMCWEB_LOG_CRITICAL << "Unable to set privilege " << privilege
- << "in constructor";
+ BMCWEB_LOG_CRITICAL("Unable to set privilege {}in constructor",
+ privilege);
}
}
}
@@ -295,10 +295,10 @@ inline bool isOperationAllowedWithPrivileges(
}
for (const auto& requiredPrivileges : operationPrivilegesRequired)
{
- BMCWEB_LOG_DEBUG << "Checking operation privileges...";
+ BMCWEB_LOG_DEBUG("Checking operation privileges...");
if (userPrivileges.isSupersetOf(requiredPrivileges))
{
- BMCWEB_LOG_DEBUG << "...success";
+ BMCWEB_LOG_DEBUG("...success");
return true;
}
}
diff --git a/redfish-core/include/query.hpp b/redfish-core/include/query.hpp
index c1ca38e957..78de6cae06 100644
--- a/redfish-core/include/query.hpp
+++ b/redfish-core/include/query.hpp
@@ -38,8 +38,8 @@ inline void
const crow::Response& resIn)
{
std::string computedEtag = resIn.computeEtag();
- BMCWEB_LOG_DEBUG << "User provided if-match etag " << ifMatchHeader
- << " computed etag " << computedEtag;
+ BMCWEB_LOG_DEBUG("User provided if-match etag {} computed etag {}",
+ ifMatchHeader, computedEtag);
if (computedEtag != ifMatchHeader)
{
messages::preconditionFailed(asyncResp->res);
@@ -47,7 +47,7 @@ inline void
}
// Restart the request without if-match
req.req.erase(boost::beast::http::field::if_match);
- BMCWEB_LOG_DEBUG << "Restarting request";
+ BMCWEB_LOG_DEBUG("Restarting request");
app.handle(req, asyncResp);
}
@@ -118,7 +118,7 @@ inline bool handleIfMatch(crow::App& app, const crow::Request& req,
query_param::Query& delegated,
const query_param::QueryCapabilities& queryCapabilities)
{
- BMCWEB_LOG_DEBUG << "setup redfish route";
+ BMCWEB_LOG_DEBUG("setup redfish route");
// Section 7.4 of the redfish spec "Redfish Services shall process the
// [OData-Version header] in the following table as defined by the HTTP 1.1
diff --git a/redfish-core/include/redfish_aggregator.hpp b/redfish-core/include/redfish_aggregator.hpp
index 7cae89af86..59a4eb97d4 100644
--- a/redfish-core/include/redfish_aggregator.hpp
+++ b/redfish-core/include/redfish_aggregator.hpp
@@ -83,8 +83,8 @@ inline bool searchCollectionsArray(std::string_view uri,
uri.substr(serviceRootUri.size(), parseCount));
if (!parsedUrl)
{
- BMCWEB_LOG_ERROR << "Failed to get target URI from "
- << uri.substr(serviceRootUri.size());
+ BMCWEB_LOG_ERROR("Failed to get target URI from {}",
+ uri.substr(serviceRootUri.size()));
return false;
}
@@ -165,7 +165,7 @@ static inline void addPrefixToStringItem(std::string& strValue,
auto parsed = boost::urls::parse_relative_ref(strValue);
if (!parsed)
{
- BMCWEB_LOG_CRITICAL << "Couldn't parse URI from resource " << strValue;
+ BMCWEB_LOG_CRITICAL("Couldn't parse URI from resource {}", strValue);
return;
}
@@ -178,7 +178,7 @@ static inline void addPrefixToStringItem(std::string& strValue,
if (crow::utility::readUrlSegments(thisUrl, "redfish", "v1", "JsonSchemas",
crow::utility::OrMorePaths()))
{
- BMCWEB_LOG_DEBUG << "Skipping JsonSchemas URI prefix fixing";
+ BMCWEB_LOG_DEBUG("Skipping JsonSchemas URI prefix fixing");
return;
}
@@ -244,7 +244,7 @@ static inline void addPrefixToItem(nlohmann::json& item,
std::string* strValue = item.get_ptr<std::string*>();
if (strValue == nullptr)
{
- BMCWEB_LOG_CRITICAL << "Field wasn't a string????";
+ BMCWEB_LOG_CRITICAL("Field wasn't a string????");
return;
}
addPrefixToStringItem(*strValue, prefix);
@@ -288,7 +288,7 @@ static inline void addPrefixToHeadersInResp(nlohmann::json& json,
nlohmann::json::array_t* array = json.get_ptr<nlohmann::json::array_t*>();
if (array == nullptr)
{
- BMCWEB_LOG_ERROR << "Field wasn't an array_t????";
+ BMCWEB_LOG_ERROR("Field wasn't an array_t????");
return;
}
@@ -298,7 +298,7 @@ static inline void addPrefixToHeadersInResp(nlohmann::json& json,
std::string* strHeader = item.get_ptr<std::string*>();
if (strHeader == nullptr)
{
- BMCWEB_LOG_CRITICAL << "Field wasn't a string????";
+ BMCWEB_LOG_CRITICAL("Field wasn't a string????");
continue;
}
@@ -355,7 +355,7 @@ inline boost::system::error_code aggregationRetryHandler(unsigned int respCode)
{
// Allow all response codes because we want to surface any satellite
// issue to the client
- BMCWEB_LOG_DEBUG << "Received " << respCode << " response from satellite";
+ BMCWEB_LOG_DEBUG("Received {} response from satellite", respCode);
return boost::system::errc::make_error_code(boost::system::errc::success);
}
@@ -382,13 +382,12 @@ class RedfishAggregator
{
if (ec)
{
- BMCWEB_LOG_ERROR << "Something went wrong while querying dbus!";
+ BMCWEB_LOG_ERROR("Something went wrong while querying dbus!");
return;
}
- BMCWEB_LOG_DEBUG << "There were "
- << std::to_string(satelliteInfo.size())
- << " satellite configs found at startup";
+ BMCWEB_LOG_DEBUG("There were {} satellite configs found at startup",
+ std::to_string(satelliteInfo.size()));
}
// Search D-Bus objects for satellite config objects and add their
@@ -404,14 +403,14 @@ class RedfishAggregator
if (interface.first ==
"xyz.openbmc_project.Configuration.SatelliteController")
{
- BMCWEB_LOG_DEBUG << "Found Satellite Controller at "
- << objectPath.first.str;
+ BMCWEB_LOG_DEBUG("Found Satellite Controller at {}",
+ objectPath.first.str);
if (!satelliteInfo.empty())
{
- BMCWEB_LOG_ERROR
- << "Redfish Aggregation only supports one satellite!";
- BMCWEB_LOG_DEBUG << "Clearing all satellite data";
+ BMCWEB_LOG_ERROR(
+ "Redfish Aggregation only supports one satellite!");
+ BMCWEB_LOG_DEBUG("Clearing all satellite data");
satelliteInfo.clear();
return;
}
@@ -442,7 +441,7 @@ class RedfishAggregator
std::get_if<std::string>(&prop.second);
if (propVal == nullptr)
{
- BMCWEB_LOG_ERROR << "Invalid Hostname value";
+ BMCWEB_LOG_ERROR("Invalid Hostname value");
return;
}
url.set_host(*propVal);
@@ -453,13 +452,13 @@ class RedfishAggregator
const uint64_t* propVal = std::get_if<uint64_t>(&prop.second);
if (propVal == nullptr)
{
- BMCWEB_LOG_ERROR << "Invalid Port value";
+ BMCWEB_LOG_ERROR("Invalid Port value");
return;
}
if (*propVal > std::numeric_limits<uint16_t>::max())
{
- BMCWEB_LOG_ERROR << "Port value out of range";
+ BMCWEB_LOG_ERROR("Port value out of range");
return;
}
url.set_port(std::to_string(static_cast<uint16_t>(*propVal)));
@@ -471,7 +470,7 @@ class RedfishAggregator
std::get_if<std::string>(&prop.second);
if (propVal == nullptr)
{
- BMCWEB_LOG_ERROR << "Invalid AuthType value";
+ BMCWEB_LOG_ERROR("Invalid AuthType value");
return;
}
@@ -479,9 +478,9 @@ class RedfishAggregator
// with the satellite BMC
if (*propVal != "None")
{
- BMCWEB_LOG_ERROR
- << "Unsupported AuthType value: " << *propVal
- << ", only \"none\" is supported";
+ BMCWEB_LOG_ERROR(
+ "Unsupported AuthType value: {}, only \"none\" is supported",
+ *propVal);
return;
}
url.set_scheme("http");
@@ -491,20 +490,19 @@ class RedfishAggregator
// Make sure all required config information was made available
if (url.host().empty())
{
- BMCWEB_LOG_ERROR << "Satellite config " << name << " missing Host";
+ BMCWEB_LOG_ERROR("Satellite config {} missing Host", name);
return;
}
if (!url.has_port())
{
- BMCWEB_LOG_ERROR << "Satellite config " << name << " missing Port";
+ BMCWEB_LOG_ERROR("Satellite config {} missing Port", name);
return;
}
if (!url.has_scheme())
{
- BMCWEB_LOG_ERROR << "Satellite config " << name
- << " missing AuthType";
+ BMCWEB_LOG_ERROR("Satellite config {} missing AuthType", name);
return;
}
@@ -519,9 +517,9 @@ class RedfishAggregator
resultString = "Updated existing satellite config ";
}
- BMCWEB_LOG_DEBUG << resultString << name << " at "
- << result.first->second.scheme() << "://"
- << result.first->second.encoded_host_and_port();
+ BMCWEB_LOG_DEBUG("{}{} at {}://{}", resultString, name,
+ result.first->second.scheme(),
+ result.first->second.encoded_host_and_port());
}
enum AggregationType
@@ -539,15 +537,15 @@ class RedfishAggregator
{
if (aggType == AggregationType::Collection)
{
- BMCWEB_LOG_DEBUG
- << "Only aggregate GET requests to top level collections";
+ BMCWEB_LOG_DEBUG(
+ "Only aggregate GET requests to top level collections");
return;
}
if (aggType == AggregationType::ContainsSubordinate)
{
- BMCWEB_LOG_DEBUG << "Only aggregate GET requests when uptree of"
- << " a top level collection";
+ BMCWEB_LOG_DEBUG(
+ "Only aggregate GET requests when uptree of a top level collection");
return;
}
}
@@ -557,7 +555,7 @@ class RedfishAggregator
auto localReq = std::make_shared<crow::Request>(thisReq.req, ec);
if (ec)
{
- BMCWEB_LOG_ERROR << "Failed to create copy of request";
+ BMCWEB_LOG_ERROR("Failed to create copy of request");
if (aggType == AggregationType::Resource)
{
messages::internalError(asyncResp->res);
@@ -582,8 +580,7 @@ class RedfishAggregator
targetPrefix += "_";
if (memberName.starts_with(targetPrefix))
{
- BMCWEB_LOG_DEBUG << "\"" << satellite.first
- << "\" is a known prefix";
+ BMCWEB_LOG_DEBUG("\"{}\" is a known prefix", satellite.first);
// Remove the known prefix from the request's URI and
// then forward to the associated satellite BMC
@@ -634,14 +631,14 @@ class RedfishAggregator
}
const crow::Request& thisReq = *sharedReq;
- BMCWEB_LOG_DEBUG << "Aggregation is enabled, begin processing of "
- << thisReq.target();
+ BMCWEB_LOG_DEBUG("Aggregation is enabled, begin processing of {}",
+ thisReq.target());
// We previously determined the request is for a collection. No need to
// check again
if (aggType == AggregationType::Collection)
{
- BMCWEB_LOG_DEBUG << "Aggregating a collection";
+ BMCWEB_LOG_DEBUG("Aggregating a collection");
// We need to use a specific response handler and send the
// request to all known satellites
getInstance().forwardCollectionRequests(thisReq, asyncResp,
@@ -653,8 +650,8 @@ class RedfishAggregator
// collection. No need to check again
if (aggType == AggregationType::ContainsSubordinate)
{
- BMCWEB_LOG_DEBUG
- << "Aggregating what may have a subordinate collection";
+ BMCWEB_LOG_DEBUG(
+ "Aggregating what may have a subordinate collection");
// We need to use a specific response handler and send the
// request to all known satellites
getInstance().forwardContainsSubordinateRequests(thisReq, asyncResp,
@@ -703,8 +700,7 @@ class RedfishAggregator
{
// Realistically this shouldn't get called since we perform an
// earlier check to make sure the prefix exists
- BMCWEB_LOG_ERROR << "Unrecognized satellite prefix \"" << prefix
- << "\"";
+ BMCWEB_LOG_ERROR("Unrecognized satellite prefix \"{}\"", prefix);
return;
}
@@ -714,8 +710,8 @@ class RedfishAggregator
if (pos == std::string::npos)
{
// If this fails then something went wrong
- BMCWEB_LOG_ERROR << "Error removing prefix \"" << prefix
- << "_\" from request URI";
+ BMCWEB_LOG_ERROR("Error removing prefix \"{}_\" from request URI",
+ prefix);
messages::internalError(asyncResp->res);
return;
}
@@ -803,7 +799,7 @@ class RedfishAggregator
const std::unordered_map<std::string, boost::urls::url>&)>
handler)
{
- BMCWEB_LOG_DEBUG << "Gathering satellite configs";
+ BMCWEB_LOG_DEBUG("Gathering satellite configs");
sdbusplus::message::object_path path("/xyz/openbmc_project/inventory");
dbus::utility::getManagedObjects(
"xyz.openbmc_project.EntityManager", path,
@@ -813,8 +809,8 @@ class RedfishAggregator
std::unordered_map<std::string, boost::urls::url> satelliteInfo;
if (ec)
{
- BMCWEB_LOG_ERROR << "DBUS response error " << ec.value() << ", "
- << ec.message();
+ BMCWEB_LOG_ERROR("DBUS response error {}, {}", ec.value(),
+ ec.message());
handler(ec, satelliteInfo);
return;
}
@@ -826,14 +822,14 @@ class RedfishAggregator
if (!satelliteInfo.empty())
{
- BMCWEB_LOG_DEBUG << "Redfish Aggregation enabled with "
- << std::to_string(satelliteInfo.size())
- << " satellite BMCs";
+ BMCWEB_LOG_DEBUG(
+ "Redfish Aggregation enabled with {} satellite BMCs",
+ std::to_string(satelliteInfo.size()));
}
else
{
- BMCWEB_LOG_DEBUG
- << "No satellite BMCs detected. Redfish Aggregation not enabled";
+ BMCWEB_LOG_DEBUG(
+ "No satellite BMCs detected. Redfish Aggregation not enabled");
}
handler(ec, satelliteInfo);
});
@@ -866,21 +862,21 @@ class RedfishAggregator
false);
if (jsonVal.is_discarded())
{
- BMCWEB_LOG_ERROR << "Error parsing satellite response as JSON";
+ BMCWEB_LOG_ERROR("Error parsing satellite response as JSON");
messages::operationFailed(asyncResp->res);
return;
}
- BMCWEB_LOG_DEBUG << "Successfully parsed satellite response";
+ BMCWEB_LOG_DEBUG("Successfully parsed satellite response");
addPrefixes(jsonVal, prefix);
- BMCWEB_LOG_DEBUG << "Added prefix to parsed satellite response";
+ BMCWEB_LOG_DEBUG("Added prefix to parsed satellite response");
asyncResp->res.result(resp.result());
asyncResp->res.jsonValue = std::move(jsonVal);
- BMCWEB_LOG_DEBUG << "Finished writing asyncResp";
+ BMCWEB_LOG_DEBUG("Finished writing asyncResp");
}
else
{
@@ -908,9 +904,9 @@ class RedfishAggregator
if (resp.resultInt() != 200)
{
- BMCWEB_LOG_DEBUG
- << "Collection resource does not exist in satellite BMC \""
- << prefix << "\"";
+ BMCWEB_LOG_DEBUG(
+ "Collection resource does not exist in satellite BMC \"{}\"",
+ prefix);
// Return the error if we haven't had any successes
if (asyncResp->res.resultInt() != 200)
{
@@ -930,7 +926,7 @@ class RedfishAggregator
false);
if (jsonVal.is_discarded())
{
- BMCWEB_LOG_ERROR << "Error parsing satellite response as JSON";
+ BMCWEB_LOG_ERROR("Error parsing satellite response as JSON");
// Notify the user if doing so won't overwrite a valid response
if (asyncResp->res.resultInt() != 200)
@@ -940,13 +936,13 @@ class RedfishAggregator
return;
}
- BMCWEB_LOG_DEBUG << "Successfully parsed satellite response";
+ BMCWEB_LOG_DEBUG("Successfully parsed satellite response");
// Now we need to add the prefix to the URIs contained in the
// response.
addPrefixes(jsonVal, prefix);
- BMCWEB_LOG_DEBUG << "Added prefix to parsed satellite response";
+ BMCWEB_LOG_DEBUG("Added prefix to parsed satellite response");
// If this resource collection does not exist on the aggregating bmc
// and has not already been added from processing the response from
@@ -959,18 +955,18 @@ class RedfishAggregator
if ((!jsonVal.contains("Members")) &&
(!jsonVal["Members"].is_array()))
{
- BMCWEB_LOG_DEBUG
- << "Skipping aggregating unsupported resource";
+ BMCWEB_LOG_DEBUG(
+ "Skipping aggregating unsupported resource");
return;
}
- BMCWEB_LOG_DEBUG
- << "Collection does not exist, overwriting asyncResp";
+ BMCWEB_LOG_DEBUG(
+ "Collection does not exist, overwriting asyncResp");
asyncResp->res.result(resp.result());
asyncResp->res.jsonValue = std::move(jsonVal);
asyncResp->res.addHeader("Content-Type", "application/json");
- BMCWEB_LOG_DEBUG << "Finished overwriting asyncResp";
+ BMCWEB_LOG_DEBUG("Finished overwriting asyncResp");
}
else
{
@@ -980,13 +976,14 @@ class RedfishAggregator
(!asyncResp->res.jsonValue["Members"].is_array()))
{
- BMCWEB_LOG_DEBUG
- << "Skipping aggregating unsupported resource";
+ BMCWEB_LOG_DEBUG(
+ "Skipping aggregating unsupported resource");
return;
}
- BMCWEB_LOG_DEBUG << "Adding aggregated resources from \""
- << prefix << "\" to collection";
+ BMCWEB_LOG_DEBUG(
+ "Adding aggregated resources from \"{}\" to collection",
+ prefix);
// TODO: This is a potential race condition with multiple
// satellites and the aggregating bmc attempting to write to
@@ -1010,8 +1007,8 @@ class RedfishAggregator
}
else
{
- BMCWEB_LOG_ERROR << "Received unparsable response from \"" << prefix
- << "\"";
+ BMCWEB_LOG_ERROR("Received unparsable response from \"{}\"",
+ prefix);
// We received a response that was not a json.
// Notify the user only if we did not receive any valid responses
// and if the resource collection does not already exist on the
@@ -1041,9 +1038,9 @@ class RedfishAggregator
if (resp.resultInt() != 200)
{
- BMCWEB_LOG_DEBUG
- << "Resource uptree from Collection does not exist in "
- << "satellite BMC \"" << prefix << "\"";
+ BMCWEB_LOG_DEBUG(
+ "Resource uptree from Collection does not exist in satellite BMC \"{}\"",
+ prefix);
// Return the error if we haven't had any successes
if (asyncResp->res.resultInt() != 200)
{
@@ -1064,7 +1061,7 @@ class RedfishAggregator
false);
if (jsonVal.is_discarded())
{
- BMCWEB_LOG_ERROR << "Error parsing satellite response as JSON";
+ BMCWEB_LOG_ERROR("Error parsing satellite response as JSON");
// Notify the user if doing so won't overwrite a valid response
if (asyncResp->res.resultInt() != 200)
@@ -1074,7 +1071,7 @@ class RedfishAggregator
return;
}
- BMCWEB_LOG_DEBUG << "Successfully parsed satellite response";
+ BMCWEB_LOG_DEBUG("Successfully parsed satellite response");
// Parse response and add properties missing from the AsyncResp
// Valid properties will be of the form <property>.@odata.id and
@@ -1085,7 +1082,7 @@ class RedfishAggregator
jsonVal.get_ptr<nlohmann::json::object_t*>();
if (object == nullptr)
{
- BMCWEB_LOG_ERROR << "Parsed JSON was not an object?";
+ BMCWEB_LOG_ERROR("Parsed JSON was not an object?");
return;
}
@@ -1100,7 +1097,7 @@ class RedfishAggregator
prop.second["@odata.id"].get_ptr<std::string*>();
if (strValue == nullptr)
{
- BMCWEB_LOG_CRITICAL << "Field wasn't a string????";
+ BMCWEB_LOG_CRITICAL("Field wasn't a string????");
continue;
}
if (!searchCollectionsArray(*strValue, SearchType::CollOrCon))
@@ -1112,8 +1109,8 @@ class RedfishAggregator
if (!asyncResp->res.jsonValue.contains(prop.first))
{
// Only add the property if it did not already exist
- BMCWEB_LOG_DEBUG << "Adding link for " << *strValue
- << " from BMC " << prefix;
+ BMCWEB_LOG_DEBUG("Adding link for {} from BMC {}",
+ *strValue, prefix);
asyncResp->res.jsonValue[prop.first]["@odata.id"] =
*strValue;
continue;
@@ -1157,8 +1154,8 @@ class RedfishAggregator
}
else
{
- BMCWEB_LOG_ERROR << "Received unparsable response from \"" << prefix
- << "\"";
+ BMCWEB_LOG_ERROR("Received unparsable response from \"{}\"",
+ prefix);
// We received as response that was not a json
// Notify the user only if we did not receive any valid responses,
// and if the resource does not already exist on the aggregating BMC
@@ -1225,7 +1222,7 @@ class RedfishAggregator
// being a local resource describing the satellite
if (collectionItem.starts_with("5B247A_"))
{
- BMCWEB_LOG_DEBUG << "Need to forward a request";
+ BMCWEB_LOG_DEBUG("Need to forward a request");
// Extract the prefix from the request's URI, retrieve the
// associated satellite config information, and then forward
@@ -1271,7 +1268,7 @@ class RedfishAggregator
return Result::LocalHandle;
}
- BMCWEB_LOG_DEBUG << "Aggregation not required for " << url.buffer();
+ BMCWEB_LOG_DEBUG("Aggregation not required for {}", url.buffer());
return Result::LocalHandle;
}
};
diff --git a/redfish-core/include/snmp_trap_event_clients.hpp b/redfish-core/include/snmp_trap_event_clients.hpp
index 08ff81b439..de7bf9d95d 100644
--- a/redfish-core/include/snmp_trap_event_clients.hpp
+++ b/redfish-core/include/snmp_trap_event_clients.hpp
@@ -28,7 +28,7 @@ inline void afterGetSnmpTrapClientdata(
{
if (ec)
{
- BMCWEB_LOG_ERROR << "D-Bus response error on GetSubTree " << ec;
+ BMCWEB_LOG_ERROR("D-Bus response error on GetSubTree {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -95,8 +95,8 @@ inline void
dbus::utility::ManagedObjectType& resp) {
if (ec)
{
- BMCWEB_LOG_ERROR << "D-Bus response error on GetManagedObjects "
- << ec;
+ BMCWEB_LOG_ERROR("D-Bus response error on GetManagedObjects {}",
+ ec);
messages::internalError(asyncResp->res);
return;
}
@@ -107,7 +107,7 @@ inline void
const std::string snmpId = path.filename();
if (snmpId.empty())
{
- BMCWEB_LOG_ERROR << "The SNMP client ID is wrong";
+ BMCWEB_LOG_ERROR("The SNMP client ID is wrong");
messages::internalError(asyncResp->res);
return;
}
diff --git a/redfish-core/include/utils/chassis_utils.hpp b/redfish-core/include/utils/chassis_utils.hpp
index 9c7c7db6bc..c8c203d3d3 100644
--- a/redfish-core/include/utils/chassis_utils.hpp
+++ b/redfish-core/include/utils/chassis_utils.hpp
@@ -21,7 +21,7 @@ template <typename Callback>
void getValidChassisPath(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
const std::string& chassisId, Callback&& callback)
{
- BMCWEB_LOG_DEBUG << "checkChassisId enter";
+ BMCWEB_LOG_DEBUG("checkChassisId enter");
constexpr std::array<std::string_view, 2> interfaces = {
"xyz.openbmc_project.Inventory.Item.Board",
"xyz.openbmc_project.Inventory.Item.Chassis"};
@@ -33,11 +33,11 @@ void getValidChassisPath(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
chassisId](const boost::system::error_code& ec,
const dbus::utility::MapperGetSubTreePathsResponse&
chassisPaths) mutable {
- BMCWEB_LOG_DEBUG << "getValidChassisPath respHandler enter";
+ BMCWEB_LOG_DEBUG("getValidChassisPath respHandler enter");
if (ec)
{
- BMCWEB_LOG_ERROR << "getValidChassisPath respHandler DBUS error: "
- << ec;
+ BMCWEB_LOG_ERROR("getValidChassisPath respHandler DBUS error: {}",
+ ec);
messages::internalError(asyncResp->res);
return;
}
@@ -49,7 +49,7 @@ void getValidChassisPath(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
std::string chassisName = path.filename();
if (chassisName.empty())
{
- BMCWEB_LOG_ERROR << "Failed to find '/' in " << chassis;
+ BMCWEB_LOG_ERROR("Failed to find '/' in {}", chassis);
continue;
}
if (chassisName == chassisId)
@@ -60,7 +60,7 @@ void getValidChassisPath(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
}
callback(chassisPath);
});
- BMCWEB_LOG_DEBUG << "checkChassisId exit";
+ BMCWEB_LOG_DEBUG("checkChassisId exit");
}
} // namespace chassis_utils
diff --git a/redfish-core/include/utils/collection.hpp b/redfish-core/include/utils/collection.hpp
index 500749cd54..862be90efd 100644
--- a/redfish-core/include/utils/collection.hpp
+++ b/redfish-core/include/utils/collection.hpp
@@ -37,8 +37,7 @@ inline void
std::span<const std::string_view> interfaces,
const char* subtree = "/xyz/openbmc_project/inventory")
{
- BMCWEB_LOG_DEBUG << "Get collection members for: "
- << collectionPath.buffer();
+ BMCWEB_LOG_DEBUG("Get collection members for: {}", collectionPath.buffer());
dbus::utility::getSubTreePaths(
subtree, 0, interfaces,
[collectionPath, asyncResp{std::move(asyncResp)}](
@@ -53,7 +52,7 @@ inline void
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS response error " << ec.value();
+ BMCWEB_LOG_DEBUG("DBUS response error {}", ec.value());
messages::internalError(asyncResp->res);
return;
}
diff --git a/redfish-core/include/utils/dbus_utils.hpp b/redfish-core/include/utils/dbus_utils.hpp
index 7e895fea47..298a56b6ec 100644
--- a/redfish-core/include/utils/dbus_utils.hpp
+++ b/redfish-core/include/utils/dbus_utils.hpp
@@ -14,11 +14,10 @@ struct UnpackErrorPrinter
void operator()(const sdbusplus::UnpackErrorReason reason,
const std::string& property) const noexcept
{
- BMCWEB_LOG_ERROR
- << "DBUS property error in property: " << property << ", reason: "
- << static_cast<
- std::underlying_type_t<sdbusplus::UnpackErrorReason>>(
- reason);
+ BMCWEB_LOG_ERROR(
+ "DBUS property error in property: {}, reason: {}", property,
+ static_cast<std::underlying_type_t<sdbusplus::UnpackErrorReason>>(
+ reason));
}
};
diff --git a/redfish-core/include/utils/json_utils.hpp b/redfish-core/include/utils/json_utils.hpp
index 642ca802eb..3d3ae8d4bd 100644
--- a/redfish-core/include/utils/json_utils.hpp
+++ b/redfish-core/include/utils/json_utils.hpp
@@ -101,21 +101,21 @@ bool checkRange(const FromType& from, std::string_view key)
{
if (from > std::numeric_limits<ToType>::max())
{
- BMCWEB_LOG_DEBUG << "Value for key " << key
- << " was greater than max: " << __PRETTY_FUNCTION__;
+ BMCWEB_LOG_DEBUG("Value for key {} was greater than max: {}", key,
+ __PRETTY_FUNCTION__);
return false;
}
if (from < std::numeric_limits<ToType>::lowest())
{
- BMCWEB_LOG_DEBUG << "Value for key " << key
- << " was less than min: " << __PRETTY_FUNCTION__;
+ BMCWEB_LOG_DEBUG("Value for key {} was less than min: {}", key,
+ __PRETTY_FUNCTION__);
return false;
}
if constexpr (std::is_floating_point_v<ToType>)
{
if (std::isnan(from))
{
- BMCWEB_LOG_DEBUG << "Value for key " << key << " was NAN";
+ BMCWEB_LOG_DEBUG("Value for key {} was NAN", key);
return false;
}
}
@@ -193,9 +193,8 @@ UnpackErrorCode unpackValueWithErrorCode(nlohmann::json& jsonValue,
JsonType jsonPtr = jsonValue.get_ptr<JsonType>();
if (jsonPtr == nullptr)
{
- BMCWEB_LOG_DEBUG
- << "Value for key " << key
- << " was incorrect type: " << jsonValue.type_name();
+ BMCWEB_LOG_DEBUG("Value for key {} was incorrect type: {}", key,
+ jsonValue.type_name());
return UnpackErrorCode::invalidType;
}
value = std::move(*jsonPtr);
@@ -392,7 +391,7 @@ inline bool readJsonHelper(nlohmann::json& jsonRequest, crow::Response& res,
jsonRequest.get_ptr<nlohmann::json::object_t*>();
if (obj == nullptr)
{
- BMCWEB_LOG_DEBUG << "Json value is not an object";
+ BMCWEB_LOG_DEBUG("Json value is not an object");
messages::unrecognizedRequestBody(res);
return false;
}
@@ -521,14 +520,14 @@ inline std::optional<nlohmann::json>
nlohmann::json jsonRequest;
if (!json_util::processJsonFromRequest(res, req, jsonRequest))
{
- BMCWEB_LOG_DEBUG << "Json value not readable";
+ BMCWEB_LOG_DEBUG("Json value not readable");
return std::nullopt;
}
nlohmann::json::object_t* object =
jsonRequest.get_ptr<nlohmann::json::object_t*>();
if (object == nullptr || object->empty())
{
- BMCWEB_LOG_DEBUG << "Json value is empty";
+ BMCWEB_LOG_DEBUG("Json value is empty");
messages::emptyJSON(res);
return std::nullopt;
}
@@ -568,7 +567,7 @@ bool readJsonAction(const crow::Request& req, crow::Response& res,
nlohmann::json jsonRequest;
if (!json_util::processJsonFromRequest(res, req, jsonRequest))
{
- BMCWEB_LOG_DEBUG << "Json value not readable";
+ BMCWEB_LOG_DEBUG("Json value not readable");
return false;
}
return readJson(jsonRequest, res, key, std::forward<UnpackTypes&&>(in)...);
diff --git a/redfish-core/include/utils/pcie_util.hpp b/redfish-core/include/utils/pcie_util.hpp
index 4db6e03249..a889f936ab 100644
--- a/redfish-core/include/utils/pcie_util.hpp
+++ b/redfish-core/include/utils/pcie_util.hpp
@@ -46,8 +46,7 @@ inline void
pcieDevicePaths) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "no PCIe device paths found ec: "
- << ec.message();
+ BMCWEB_LOG_DEBUG("no PCIe device paths found ec: {}", ec.message());
// Not an error, system just doesn't have PCIe info
return;
}
diff --git a/redfish-core/include/utils/query_param.hpp b/redfish-core/include/utils/query_param.hpp
index 4ba521b692..696e323d96 100644
--- a/redfish-core/include/utils/query_param.hpp
+++ b/redfish-core/include/utils/query_param.hpp
@@ -462,7 +462,7 @@ inline std::optional<Query> parseParameters(boost::urls::params_view urlParams,
inline bool processOnly(crow::App& app, crow::Response& res,
std::function<void(crow::Response&)>& completionHandler)
{
- BMCWEB_LOG_DEBUG << "Processing only query param";
+ BMCWEB_LOG_DEBUG("Processing only query param");
auto itMembers = res.jsonValue.find("Members");
if (itMembers == res.jsonValue.end())
{
@@ -473,8 +473,9 @@ inline bool processOnly(crow::App& app, crow::Response& res,
auto itMemBegin = itMembers->begin();
if (itMemBegin == itMembers->end() || itMembers->size() != 1)
{
- BMCWEB_LOG_DEBUG << "Members contains " << itMembers->size()
- << " element, returning full collection.";
+ BMCWEB_LOG_DEBUG(
+ "Members contains {} element, returning full collection.",
+ itMembers->size());
completionHandler(res);
return false;
}
@@ -482,7 +483,7 @@ inline bool processOnly(crow::App& app, crow::Response& res,
auto itUrl = itMemBegin->find("@odata.id");
if (itUrl == itMemBegin->end())
{
- BMCWEB_LOG_DEBUG << "No found odata.id";
+ BMCWEB_LOG_DEBUG("No found odata.id");
messages::internalError(res);
completionHandler(res);
return false;
@@ -490,7 +491,7 @@ inline bool processOnly(crow::App& app, crow::Response& res,
const std::string* url = itUrl->get_ptr<const std::string*>();
if (url == nullptr)
{
- BMCWEB_LOG_DEBUG << "@odata.id wasn't a string????";
+ BMCWEB_LOG_DEBUG("@odata.id wasn't a string????");
messages::internalError(res);
completionHandler(res);
return false;
@@ -507,7 +508,8 @@ inline bool processOnly(crow::App& app, crow::Response& res,
}
auto asyncResp = std::make_shared<bmcweb::AsyncResp>();
- BMCWEB_LOG_DEBUG << "setting completion handler on " << &asyncResp->res;
+ BMCWEB_LOG_DEBUG("setting completion handler on {}",
+ logPtr(&asyncResp->res));
asyncResp->res.setCompleteRequestHandler(std::move(completionHandler));
asyncResp->res.setIsAliveHelper(res.releaseIsAliveHelper());
app.handle(newReq, asyncResp);
@@ -579,7 +581,7 @@ inline void findNavigationReferencesInArrayRecursive(
for (auto& element : array)
{
nlohmann::json::json_pointer newPtr = jsonPtr / index;
- BMCWEB_LOG_DEBUG << "Traversing response at " << newPtr.to_string();
+ BMCWEB_LOG_DEBUG("Traversing response at {}", newPtr.to_string());
findNavigationReferencesRecursive(eType, element, newPtr, depth,
skipDepth, inLinks, out);
index++;
@@ -600,8 +602,7 @@ inline void findNavigationReferencesInObjectRecursive(
obj.begin()->second.get_ptr<const std::string*>();
if (uri != nullptr)
{
- BMCWEB_LOG_DEBUG << "Found " << *uri << " at "
- << jsonPtr.to_string();
+ BMCWEB_LOG_DEBUG("Found {} at {}", *uri, jsonPtr.to_string());
if (skipDepth == 0)
{
out.push_back({jsonPtr, *uri});
@@ -658,7 +659,7 @@ inline void findNavigationReferencesInObjectRecursive(
continue;
}
nlohmann::json::json_pointer newPtr = jsonPtr / element.first;
- BMCWEB_LOG_DEBUG << "Traversing response at " << newPtr;
+ BMCWEB_LOG_DEBUG("Traversing response at {}", newPtr);
findNavigationReferencesRecursive(eType, element.second, newPtr,
newDepth, skipDepth, localInLinks,
@@ -827,7 +828,7 @@ class MultiAsyncResp : public std::enable_shared_from_this<MultiAsyncResp>
void placeResult(const nlohmann::json::json_pointer& locationToPlace,
crow::Response& res)
{
- BMCWEB_LOG_DEBUG << "placeResult for " << locationToPlace;
+ BMCWEB_LOG_DEBUG("placeResult for {}", locationToPlace);
propogateError(finalRes->res, res);
if (!res.jsonValue.is_object() || res.jsonValue.empty())
{
@@ -844,7 +845,7 @@ class MultiAsyncResp : public std::enable_shared_from_this<MultiAsyncResp>
std::vector<ExpandNode> nodes = findNavigationReferences(
query.expandType, query.expandLevel, delegated.expandLevel,
finalRes->res.jsonValue);
- BMCWEB_LOG_DEBUG << nodes.size() << " nodes to traverse";
+ BMCWEB_LOG_DEBUG("{} nodes to traverse", nodes.size());
const std::optional<std::string> queryStr = formatQueryForExpand(query);
if (!queryStr)
{
@@ -854,7 +855,7 @@ class MultiAsyncResp : public std::enable_shared_from_this<MultiAsyncResp>
for (const ExpandNode& node : nodes)
{
const std::string subQuery = node.uri + *queryStr;
- BMCWEB_LOG_DEBUG << "URL of subquery: " << subQuery;
+ BMCWEB_LOG_DEBUG("URL of subquery: {}", subQuery);
std::error_code ec;
crow::Request newReq({boost::beast::http::verb::get, subQuery, 11},
ec);
@@ -865,8 +866,8 @@ class MultiAsyncResp : public std::enable_shared_from_this<MultiAsyncResp>
}
auto asyncResp = std::make_shared<bmcweb::AsyncResp>();
- BMCWEB_LOG_DEBUG << "setting completion handler on "
- << &asyncResp->res;
+ BMCWEB_LOG_DEBUG("setting completion handler on {}",
+ logPtr(&asyncResp->res));
addAwaitingResponse(asyncResp, node.location);
app.handle(newReq, asyncResp);
@@ -902,7 +903,7 @@ inline void processTopAndSkip(const Query& query, crow::Response& res)
return;
}
- BMCWEB_LOG_DEBUG << "Handling top/skip";
+ BMCWEB_LOG_DEBUG("Handling top/skip");
nlohmann::json::object_t::iterator members = obj->find("Members");
if (members == obj->end())
{
@@ -946,12 +947,12 @@ inline void recursiveSelect(nlohmann::json& currRoot,
currRoot.get_ptr<nlohmann::json::object_t*>();
if (object != nullptr)
{
- BMCWEB_LOG_DEBUG << "Current JSON is an object";
+ BMCWEB_LOG_DEBUG("Current JSON is an object");
auto it = currRoot.begin();
while (it != currRoot.end())
{
auto nextIt = std::next(it);
- BMCWEB_LOG_DEBUG << "key=" << it.key();
+ BMCWEB_LOG_DEBUG("key={}", it.key());
const SelectTrieNode* nextNode = currNode.find(it.key());
// Per the Redfish spec section 7.3.3, the service shall select
// certain properties as if $select was omitted. This applies to
@@ -969,12 +970,12 @@ inline void recursiveSelect(nlohmann::json& currRoot,
}
if (nextNode != nullptr)
{
- BMCWEB_LOG_DEBUG << "Recursively select: " << it.key();
+ BMCWEB_LOG_DEBUG("Recursively select: {}", it.key());
recursiveSelect(*it, *nextNode);
it = nextIt;
continue;
}
- BMCWEB_LOG_DEBUG << it.key() << " is getting removed!";
+ BMCWEB_LOG_DEBUG("{} is getting removed!", it.key());
it = currRoot.erase(it);
}
}
@@ -982,7 +983,7 @@ inline void recursiveSelect(nlohmann::json& currRoot,
currRoot.get_ptr<nlohmann::json::array_t*>();
if (array != nullptr)
{
- BMCWEB_LOG_DEBUG << "Current JSON is an array";
+ BMCWEB_LOG_DEBUG("Current JSON is an array");
// Array index is omitted, so reuse the same Trie node
for (nlohmann::json& nextRoot : *array)
{
@@ -1000,7 +1001,7 @@ inline void recursiveSelect(nlohmann::json& currRoot,
inline void processSelect(crow::Response& intermediateResponse,
const SelectTrieNode& trieRoot)
{
- BMCWEB_LOG_DEBUG << "Process $select quary parameter";
+ BMCWEB_LOG_DEBUG("Process $select quary parameter");
recursiveSelect(intermediateResponse.jsonValue, trieRoot);
}
@@ -1011,11 +1012,11 @@ inline void
{
if (!completionHandler)
{
- BMCWEB_LOG_DEBUG << "Function was invalid?";
+ BMCWEB_LOG_DEBUG("Function was invalid?");
return;
}
- BMCWEB_LOG_DEBUG << "Processing query params";
+ BMCWEB_LOG_DEBUG("Processing query params");
// If the request failed, there's no reason to even try to run query
// params.
if (intermediateResponse.resultInt() < 200 ||
@@ -1037,7 +1038,7 @@ inline void
if (query.expandType != ExpandType::None)
{
- BMCWEB_LOG_DEBUG << "Executing expand query";
+ BMCWEB_LOG_DEBUG("Executing expand query");
auto asyncResp = std::make_shared<bmcweb::AsyncResp>(
std::move(intermediateResponse));
diff --git a/redfish-core/include/utils/sw_utils.hpp b/redfish-core/include/utils/sw_utils.hpp
index 176586fb69..cffc637ff7 100644
--- a/redfish-core/include/utils/sw_utils.hpp
+++ b/redfish-core/include/utils/sw_utils.hpp
@@ -54,11 +54,11 @@ inline void populateSoftwareInformation(
populateLinkToImages](
const boost::system::error_code& ec,
const dbus::utility::MapperEndPoints& functionalSw) {
- BMCWEB_LOG_DEBUG << "populateSoftwareInformation enter";
+ BMCWEB_LOG_DEBUG("populateSoftwareInformation enter");
if (ec)
{
- BMCWEB_LOG_ERROR << "error_code = " << ec;
- BMCWEB_LOG_ERROR << "error msg = " << ec.message();
+ BMCWEB_LOG_ERROR("error_code = {}", ec);
+ BMCWEB_LOG_ERROR("error msg = {}", ec.message());
messages::internalError(asyncResp->res);
return;
}
@@ -67,7 +67,7 @@ inline void populateSoftwareInformation(
{
// Could keep going and try to populate SoftwareImages but
// something is seriously wrong, so just fail
- BMCWEB_LOG_ERROR << "Zero functional software in system";
+ BMCWEB_LOG_ERROR("Zero functional software in system");
messages::internalError(asyncResp->res);
return;
}
@@ -98,13 +98,13 @@ inline void populateSoftwareInformation(
const dbus::utility::MapperGetSubTreeResponse& subtree) {
if (ec2)
{
- BMCWEB_LOG_ERROR << "error_code = " << ec2;
- BMCWEB_LOG_ERROR << "error msg = " << ec2.message();
+ BMCWEB_LOG_ERROR("error_code = {}", ec2);
+ BMCWEB_LOG_ERROR("error msg = {}", ec2.message());
messages::internalError(asyncResp->res);
return;
}
- BMCWEB_LOG_DEBUG << "Found " << subtree.size() << " images";
+ BMCWEB_LOG_DEBUG("Found {} images", subtree.size());
for (const std::pair<std::string,
std::vector<std::pair<
@@ -116,7 +116,7 @@ inline void populateSoftwareInformation(
if (swId.empty())
{
messages::internalError(asyncResp->res);
- BMCWEB_LOG_ERROR << "Invalid software ID";
+ BMCWEB_LOG_ERROR("Invalid software ID");
return;
}
@@ -142,8 +142,8 @@ inline void populateSoftwareInformation(
propertiesList) {
if (ec3)
{
- BMCWEB_LOG_ERROR << "error_code = " << ec3;
- BMCWEB_LOG_ERROR << "error msg = " << ec3.message();
+ BMCWEB_LOG_ERROR("error_code = {}", ec3);
+ BMCWEB_LOG_ERROR("error msg = {}", ec3.message());
// Have seen the code update app delete the D-Bus
// object, during code update, between the call to
// mapper and here. Just leave these properties off if
@@ -185,9 +185,9 @@ inline void populateSoftwareInformation(
return;
}
- BMCWEB_LOG_DEBUG << "Image ID: " << swId;
- BMCWEB_LOG_DEBUG << "Running image: " << runningImage;
- BMCWEB_LOG_DEBUG << "Image purpose: " << *swInvPurpose;
+ BMCWEB_LOG_DEBUG("Image ID: {}", swId);
+ BMCWEB_LOG_DEBUG("Running image: {}", runningImage);
+ BMCWEB_LOG_DEBUG("Image purpose: {}", *swInvPurpose);
if (populateLinkToImages)
{
@@ -253,7 +253,7 @@ inline resource::State getRedfishSwState(const std::string& swState)
{
return resource::State::StandbySpare;
}
- BMCWEB_LOG_DEBUG << "Default sw state " << swState << " to Disabled";
+ BMCWEB_LOG_DEBUG("Default sw state {} to Disabled", swState);
return resource::State::Disabled;
}
@@ -277,7 +277,7 @@ inline std::string getRedfishSwHealth(const std::string& swState)
{
return "OK";
}
- BMCWEB_LOG_DEBUG << "Sw state " << swState << " to Warning";
+ BMCWEB_LOG_DEBUG("Sw state {} to Warning", swState);
return "Warning";
}
@@ -297,7 +297,7 @@ inline void getSwStatus(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
const std::shared_ptr<std::string>& swId,
const std::string& dbusSvc)
{
- BMCWEB_LOG_DEBUG << "getSwStatus: swId " << *swId << " svc " << dbusSvc;
+ BMCWEB_LOG_DEBUG("getSwStatus: swId {} svc {}", *swId, dbusSvc);
sdbusplus::asio::getAllProperties(
*crow::connections::systemBus, dbusSvc,
@@ -331,7 +331,7 @@ inline void getSwStatus(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
return;
}
- BMCWEB_LOG_DEBUG << "getSwStatus: Activation " << *swInvActivation;
+ BMCWEB_LOG_DEBUG("getSwStatus: Activation {}", *swInvActivation);
asyncResp->res.jsonValue["Status"]["State"] =
getRedfishSwState(*swInvActivation);
asyncResp->res.jsonValue["Status"]["Health"] =
@@ -359,8 +359,8 @@ inline void
const dbus::utility::MapperEndPoints& objPaths) {
if (ec)
{
- BMCWEB_LOG_DEBUG << " error_code = " << ec
- << " error msg = " << ec.message();
+ BMCWEB_LOG_DEBUG(" error_code = {} error msg = {}", ec,
+ ec.message());
// System can exist with no updateable software,
// so don't throw error here.
return;
diff --git a/redfish-core/include/utils/telemetry_utils.hpp b/redfish-core/include/utils/telemetry_utils.hpp
index 58ab1c9d28..33e31f0af4 100644
--- a/redfish-core/include/utils/telemetry_utils.hpp
+++ b/redfish-core/include/utils/telemetry_utils.hpp
@@ -71,9 +71,9 @@ inline std::optional<IncorrectMetricUri> getChassisSensorNode(
if (!parsed)
{
- BMCWEB_LOG_ERROR << "Failed to get chassis and sensor Node "
- "from "
- << uri;
+ BMCWEB_LOG_ERROR("Failed to get chassis and sensor Node "
+ "from {}",
+ uri);
return std::make_optional<IncorrectMetricUri>({uri, uriIdx});
}
@@ -101,9 +101,9 @@ inline std::optional<IncorrectMetricUri> getChassisSensorNode(
continue;
}
- BMCWEB_LOG_ERROR << "Failed to get chassis and sensor Node "
- "from "
- << uri;
+ BMCWEB_LOG_ERROR("Failed to get chassis and sensor Node "
+ "from {}",
+ uri);
return std::make_optional<IncorrectMetricUri>({uri, uriIdx});
}
return std::nullopt;
diff --git a/redfish-core/include/utils/time_utils.hpp b/redfish-core/include/utils/time_utils.hpp
index 17c9111b80..314ea85de3 100644
--- a/redfish-core/include/utils/time_utils.hpp
+++ b/redfish-core/include/utils/time_utils.hpp
@@ -93,14 +93,13 @@ inline std::optional<std::chrono::milliseconds>
auto [ptr, ec] = std::from_chars(v.begin(), v.end(), ticks);
if (ec != std::errc())
{
- BMCWEB_LOG_ERROR << "Failed to convert string \"" << v
- << "\" to decimal";
+ BMCWEB_LOG_ERROR("Failed to convert string \"{}\" to decimal", v);
return std::nullopt;
}
size_t charactersRead = static_cast<size_t>(ptr - v.data());
if (ptr >= v.end())
{
- BMCWEB_LOG_ERROR << "Missing postfix";
+ BMCWEB_LOG_ERROR("Missing postfix");
return std::nullopt;
}
if (*ptr == 'D')
@@ -147,8 +146,7 @@ inline std::optional<std::chrono::milliseconds>
}
else if (stage > ProcessingStage::Milliseconds)
{
- BMCWEB_LOG_ERROR
- << "Got unexpected information at end of parse";
+ BMCWEB_LOG_ERROR("Got unexpected information at end of parse");
return std::nullopt;
}
else
@@ -170,7 +168,7 @@ inline std::optional<std::chrono::milliseconds>
}
else
{
- BMCWEB_LOG_ERROR << "Unknown postfix " << *ptr;
+ BMCWEB_LOG_ERROR("Unknown postfix {}", *ptr);
return std::nullopt;
}
diff --git a/redfish-core/lib/account_service.hpp b/redfish-core/lib/account_service.hpp
index cb469bd548..173de73e3e 100644
--- a/redfish-core/lib/account_service.hpp
+++ b/redfish-core/lib/account_service.hpp
@@ -211,8 +211,8 @@ inline bool
// Both Redfish and WebUI Account Types are needed to PATCH
if (redfishType ^ webUIType)
{
- BMCWEB_LOG_ERROR
- << "Missing Redfish or WebUI Account Type to set redfish User Group";
+ BMCWEB_LOG_ERROR(
+ "Missing Redfish or WebUI Account Type to set redfish User Group");
messages::strictAccountTypes(res, "AccountTypes");
return false;
}
@@ -243,8 +243,8 @@ inline void
(accountTypes.cend() ==
std::find(accountTypes.cbegin(), accountTypes.cend(), "Redfish")))
{
- BMCWEB_LOG_ERROR
- << "User disabling OWN Redfish Account Type is not allowed";
+ BMCWEB_LOG_ERROR(
+ "User disabling OWN Redfish Account Type is not allowed");
messages::strictAccountTypes(asyncResp->res, "AccountTypes");
return;
}
@@ -264,7 +264,7 @@ inline void
updatedUserGroups, [asyncResp](const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_ERROR << "D-Bus responses error: " << ec;
+ BMCWEB_LOG_ERROR("D-Bus responses error: {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -342,8 +342,7 @@ inline void parseLDAPConfigData(nlohmann::json& jsonResponse,
roleMapArray = nlohmann::json::array();
for (const auto& obj : confData.groupRoleList)
{
- BMCWEB_LOG_DEBUG << "Pushing the data groupName="
- << obj.second.groupName << "\n";
+ BMCWEB_LOG_DEBUG("Pushing the data groupName={}", obj.second.groupName);
nlohmann::json::object_t remoteGroup;
remoteGroup["RemoteGroup"] = obj.second.groupName;
@@ -376,7 +375,7 @@ inline void handleRoleMapPatch(
index](const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_ERROR << "DBUS response error: " << ec;
+ BMCWEB_LOG_ERROR("DBUS response error: {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -388,7 +387,7 @@ inline void handleRoleMapPatch(
}
else
{
- BMCWEB_LOG_ERROR << "Can't delete the object";
+ BMCWEB_LOG_ERROR("Can't delete the object");
messages::propertyValueTypeError(asyncResp->res, thisJson,
"RemoteRoleMapping/" +
std::to_string(index));
@@ -419,7 +418,7 @@ inline void handleRoleMapPatch(
// Update existing RoleMapping Object
if (index < roleMapObjData.size())
{
- BMCWEB_LOG_DEBUG << "Update Role Map Object";
+ BMCWEB_LOG_DEBUG("Update Role Map Object");
// If "RemoteGroup" info is provided
if (remoteGroup)
{
@@ -439,8 +438,8 @@ inline void handleRoleMapPatch(
std::string_view(
"xyz.openbmc_project.Common.Error.InvalidArgument")))
{
- BMCWEB_LOG_WARNING << "DBUS response error: "
- << ec;
+ BMCWEB_LOG_WARNING("DBUS response error: {}",
+ ec);
messages::propertyValueIncorrect(asyncResp->res,
"RemoteGroup",
*remoteGroup);
@@ -474,8 +473,8 @@ inline void handleRoleMapPatch(
std::string_view(
"xyz.openbmc_project.Common.Error.InvalidArgument")))
{
- BMCWEB_LOG_WARNING << "DBUS response error: "
- << ec;
+ BMCWEB_LOG_WARNING("DBUS response error: {}",
+ ec);
messages::propertyValueIncorrect(
asyncResp->res, "LocalRole", *localRole);
return;
@@ -492,8 +491,8 @@ inline void handleRoleMapPatch(
// Create a new RoleMapping Object.
else
{
- BMCWEB_LOG_DEBUG
- << "setRoleMappingProperties: Creating new Object";
+ BMCWEB_LOG_DEBUG(
+ "setRoleMappingProperties: Creating new Object");
std::string pathString = "RemoteRoleMapping/" +
std::to_string(index);
@@ -520,15 +519,15 @@ inline void handleRoleMapPatch(
dbusObjectPath = ldapConfigObjectName;
}
- BMCWEB_LOG_DEBUG << "Remote Group=" << *remoteGroup
- << ",LocalRole=" << *localRole;
+ BMCWEB_LOG_DEBUG("Remote Group={},LocalRole={}", *remoteGroup,
+ *localRole);
crow::connections::systemBus->async_method_call(
[asyncResp, serverType, localRole,
remoteGroup](const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_ERROR << "DBUS response error: " << ec;
+ BMCWEB_LOG_ERROR("DBUS response error: {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -565,8 +564,8 @@ inline void getLDAPConfigData(const std::string& ldapType,
const dbus::utility::MapperGetObject& resp) {
if (ec || resp.empty())
{
- BMCWEB_LOG_ERROR
- << "DBUS response error during getting of service name: " << ec;
+ BMCWEB_LOG_ERROR(
+ "DBUS response error during getting of service name: {}", ec);
LDAPConfigData empty{};
callback(false, empty, ldapType);
return;
@@ -582,7 +581,7 @@ inline void getLDAPConfigData(const std::string& ldapType,
if (ec2)
{
callback(false, confData, ldapType);
- BMCWEB_LOG_ERROR << "D-Bus responses error: " << ec2;
+ BMCWEB_LOG_ERROR("D-Bus responses error: {}", ec2);
return;
}
@@ -603,8 +602,8 @@ inline void getLDAPConfigData(const std::string& ldapType,
}
else
{
- BMCWEB_LOG_ERROR << "Can't get the DbusType for the given type="
- << ldapType;
+ BMCWEB_LOG_ERROR("Can't get the DbusType for the given type={}",
+ ldapType);
callback(false, confData, ldapType);
return;
}
@@ -808,8 +807,8 @@ inline void handleServiceAddressPatch(
std::string_view(
"xyz.openbmc_project.Common.Error.InvalidArgument")))
{
- BMCWEB_LOG_WARNING
- << "Error Occurred in updating the service address";
+ BMCWEB_LOG_WARNING(
+ "Error Occurred in updating the service address");
messages::propertyValueIncorrect(asyncResp->res,
"ServiceAddresses",
serviceAddressList.front());
@@ -827,7 +826,7 @@ inline void handleServiceAddressPatch(
messages::propertyValueModified(asyncResp->res, "ServiceAddresses",
serviceAddressList.front());
}
- BMCWEB_LOG_DEBUG << "Updated the service address";
+ BMCWEB_LOG_DEBUG("Updated the service address");
});
}
/**
@@ -852,13 +851,13 @@ inline void
const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "Error occurred in updating the username";
+ BMCWEB_LOG_DEBUG("Error occurred in updating the username");
messages::internalError(asyncResp->res);
return;
}
asyncResp->res.jsonValue[ldapServerElementName]["Authentication"]
["Username"] = username;
- BMCWEB_LOG_DEBUG << "Updated the username";
+ BMCWEB_LOG_DEBUG("Updated the username");
});
}
@@ -883,13 +882,13 @@ inline void
const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "Error occurred in updating the password";
+ BMCWEB_LOG_DEBUG("Error occurred in updating the password");
messages::internalError(asyncResp->res);
return;
}
asyncResp->res.jsonValue[ldapServerElementName]["Authentication"]
["Password"] = "";
- BMCWEB_LOG_DEBUG << "Updated the password";
+ BMCWEB_LOG_DEBUG("Updated the password");
});
}
@@ -916,7 +915,7 @@ inline void
const sdbusplus::message_t& msg) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "Error Occurred in Updating the base DN";
+ BMCWEB_LOG_DEBUG("Error Occurred in Updating the base DN");
const sd_bus_error* dbusError = msg.get_error();
if ((dbusError != nullptr) &&
(dbusError->name ==
@@ -941,7 +940,7 @@ inline void
messages::propertyValueModified(
asyncResp->res, "BaseDistinguishedNames", baseDNList.front());
}
- BMCWEB_LOG_DEBUG << "Updated the base DN";
+ BMCWEB_LOG_DEBUG("Updated the base DN");
});
}
/**
@@ -966,8 +965,8 @@ inline void
ldapServerElementName](const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "Error Occurred in Updating the "
- "username attribute";
+ BMCWEB_LOG_DEBUG("Error Occurred in Updating the "
+ "username attribute");
messages::internalError(asyncResp->res);
return;
}
@@ -975,7 +974,7 @@ inline void
auto& searchSettingsJson =
serverTypeJson["LDAPService"]["SearchSettings"];
searchSettingsJson["UsernameAttribute"] = userNameAttribute;
- BMCWEB_LOG_DEBUG << "Updated the user name attr.";
+ BMCWEB_LOG_DEBUG("Updated the user name attr.");
});
}
/**
@@ -1000,8 +999,8 @@ inline void handleGroupNameAttrPatch(
ldapServerElementName](const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "Error Occurred in Updating the "
- "groupname attribute";
+ BMCWEB_LOG_DEBUG("Error Occurred in Updating the "
+ "groupname attribute");
messages::internalError(asyncResp->res);
return;
}
@@ -1009,7 +1008,7 @@ inline void handleGroupNameAttrPatch(
auto& searchSettingsJson =
serverTypeJson["LDAPService"]["SearchSettings"];
searchSettingsJson["GroupsAttribute"] = groupsAttribute;
- BMCWEB_LOG_DEBUG << "Updated the groupname attr";
+ BMCWEB_LOG_DEBUG("Updated the groupname attr");
});
}
/**
@@ -1033,13 +1032,13 @@ inline void handleServiceEnablePatch(
ldapServerElementName](const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "Error Occurred in Updating the service enable";
+ BMCWEB_LOG_DEBUG("Error Occurred in Updating the service enable");
messages::internalError(asyncResp->res);
return;
}
asyncResp->res.jsonValue[ldapServerElementName]["ServiceEnabled"] =
serviceEnabled;
- BMCWEB_LOG_DEBUG << "Updated Service enable = " << serviceEnabled;
+ BMCWEB_LOG_DEBUG("Updated Service enable = {}", serviceEnabled);
});
}
@@ -1057,7 +1056,7 @@ inline void
"Cookie", cookie, "SessionToken", sessionToken,
"XToken", xToken, "TLS", tls))
{
- BMCWEB_LOG_ERROR << "Cannot read values from AuthMethod tag";
+ BMCWEB_LOG_ERROR("Cannot read values from AuthMethod tag");
return;
}
@@ -1334,7 +1333,7 @@ inline void updateUserProperties(
// If password is invalid
messages::propertyValueFormatError(asyncResp->res,
*password, "Password");
- BMCWEB_LOG_ERROR << "pamUpdatePassword Failed";
+ BMCWEB_LOG_ERROR("pamUpdatePassword Failed");
}
else if (retval != PAM_SUCCESS)
{
@@ -1356,7 +1355,7 @@ inline void updateUserProperties(
*enabled, [asyncResp](const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_ERROR << "D-Bus responses error: " << ec;
+ BMCWEB_LOG_ERROR("D-Bus responses error: {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -1381,7 +1380,7 @@ inline void updateUserProperties(
priv, [asyncResp](const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_ERROR << "D-Bus responses error: " << ec;
+ BMCWEB_LOG_ERROR("D-Bus responses error: {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -1409,7 +1408,7 @@ inline void updateUserProperties(
[asyncResp](const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_ERROR << "D-Bus responses error: " << ec;
+ BMCWEB_LOG_ERROR("D-Bus responses error: {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -1506,8 +1505,8 @@ inline void
return;
}
- BMCWEB_LOG_DEBUG << "Got " << propertiesList.size()
- << "properties for AccountService";
+ BMCWEB_LOG_DEBUG("Got {}properties for AccountService",
+ propertiesList.size());
const uint8_t* minPasswordLength = nullptr;
const uint32_t* accountUnlockTimeout = nullptr;
@@ -1737,7 +1736,7 @@ inline void handleAccountCollectionGet(
if (user.empty())
{
messages::internalError(asyncResp->res);
- BMCWEB_LOG_ERROR << "Invalid firmware ID";
+ BMCWEB_LOG_ERROR("Invalid firmware ID");
return;
}
@@ -1795,7 +1794,7 @@ inline void processAfterCreateUser(
"xyz.openbmc_project.User.Manager", userPath,
"xyz.openbmc_project.Object.Delete", "Delete");
- BMCWEB_LOG_ERROR << "pamUpdatePassword Failed";
+ BMCWEB_LOG_ERROR("pamUpdatePassword Failed");
return;
}
@@ -1854,8 +1853,8 @@ inline void processAfterGetAllGroups(
{
if (!accountTypeUserGroups.empty())
{
- BMCWEB_LOG_ERROR
- << "Only administrator can get HostConsole access";
+ BMCWEB_LOG_ERROR(
+ "Only administrator can get HostConsole access");
asyncResp->res.result(boost::beast::http::status::bad_request);
return;
}
@@ -1921,7 +1920,7 @@ inline void handleAccountCollectionPost(
const std::vector<std::string>& allGroupsList) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "ERROR with async_method_call";
+ BMCWEB_LOG_DEBUG("ERROR with async_method_call");
messages::internalError(asyncResp->res);
return;
}
@@ -1988,7 +1987,7 @@ inline void
if (!effectiveUserPrivileges.isSupersetOf(
requiredPermissionsToChangeNonSelf))
{
- BMCWEB_LOG_DEBUG << "GET Account denied access";
+ BMCWEB_LOG_DEBUG("GET Account denied access");
messages::insufficientPrivilege(asyncResp->res);
return;
}
@@ -2039,7 +2038,7 @@ inline void
std::get_if<bool>(&property.second);
if (userEnabled == nullptr)
{
- BMCWEB_LOG_ERROR << "UserEnabled wasn't a bool";
+ BMCWEB_LOG_ERROR("UserEnabled wasn't a bool");
messages::internalError(asyncResp->res);
return;
}
@@ -2051,9 +2050,9 @@ inline void
std::get_if<bool>(&property.second);
if (userLocked == nullptr)
{
- BMCWEB_LOG_ERROR << "UserLockedForF"
- "ailedAttempt "
- "wasn't a bool";
+ BMCWEB_LOG_ERROR("UserLockedForF"
+ "ailedAttempt "
+ "wasn't a bool");
messages::internalError(asyncResp->res);
return;
}
@@ -2068,15 +2067,15 @@ inline void
std::get_if<std::string>(&property.second);
if (userPrivPtr == nullptr)
{
- BMCWEB_LOG_ERROR << "UserPrivilege wasn't a "
- "string";
+ BMCWEB_LOG_ERROR("UserPrivilege wasn't a "
+ "string");
messages::internalError(asyncResp->res);
return;
}
std::string role = getRoleIdFromPrivilege(*userPrivPtr);
if (role.empty())
{
- BMCWEB_LOG_ERROR << "Invalid user role";
+ BMCWEB_LOG_ERROR("Invalid user role");
messages::internalError(asyncResp->res);
return;
}
@@ -2093,8 +2092,8 @@ inline void
std::get_if<bool>(&property.second);
if (userPasswordExpired == nullptr)
{
- BMCWEB_LOG_ERROR
- << "UserPasswordExpired wasn't a bool";
+ BMCWEB_LOG_ERROR(
+ "UserPasswordExpired wasn't a bool");
messages::internalError(asyncResp->res);
return;
}
@@ -2108,14 +2107,14 @@ inline void
&property.second);
if (userGroups == nullptr)
{
- BMCWEB_LOG_ERROR
- << "userGroups wasn't a string vector";
+ BMCWEB_LOG_ERROR(
+ "userGroups wasn't a string vector");
messages::internalError(asyncResp->res);
return;
}
if (!translateUserGroup(*userGroups, asyncResp->res))
{
- BMCWEB_LOG_ERROR << "userGroups mapping failed";
+ BMCWEB_LOG_ERROR("userGroups mapping failed");
messages::internalError(asyncResp->res);
return;
}
diff --git a/redfish-core/lib/aggregation_service.hpp b/redfish-core/lib/aggregation_service.hpp
index 6c93613a34..be1336bf37 100644
--- a/redfish-core/lib/aggregation_service.hpp
+++ b/redfish-core/lib/aggregation_service.hpp
@@ -210,8 +210,8 @@ inline void handleAggregationSourceHead(
"</redfish/v1/JsonSchemas/AggregationService/AggregationSource.json>; rel=describedby");
// Needed to prevent unused variable error
- BMCWEB_LOG_DEBUG << "Added link header to response from "
- << aggregationSourceId;
+ BMCWEB_LOG_DEBUG("Added link header to response from {}",
+ aggregationSourceId);
}
inline void requestRoutesAggregationSource(App& app)
diff --git a/redfish-core/lib/bios.hpp b/redfish-core/lib/bios.hpp
index b358b5f68c..8cd05d6c15 100644
--- a/redfish-core/lib/bios.hpp
+++ b/redfish-core/lib/bios.hpp
@@ -89,7 +89,7 @@ inline void
[asyncResp](const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_ERROR << "Failed to reset bios: " << ec;
+ BMCWEB_LOG_ERROR("Failed to reset bios: {}", ec);
messages::internalError(asyncResp->res);
return;
}
diff --git a/redfish-core/lib/cable.hpp b/redfish-core/lib/cable.hpp
index 87e41d5324..265a1ea4d5 100644
--- a/redfish-core/lib/cable.hpp
+++ b/redfish-core/lib/cable.hpp
@@ -30,7 +30,7 @@ inline void
{
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS response error " << ec;
+ BMCWEB_LOG_DEBUG("DBUS response error {}", ec);
messages::internalError(resp);
return;
}
@@ -83,7 +83,7 @@ inline void
const std::string& cableObjectPath,
const dbus::utility::MapperServiceMap& serviceMap)
{
- BMCWEB_LOG_DEBUG << "Get Properties for cable " << cableObjectPath;
+ BMCWEB_LOG_DEBUG("Get Properties for cable {}", cableObjectPath);
for (const auto& [service, interfaces] : serviceMap)
{
@@ -121,7 +121,7 @@ inline void requestRoutesCable(App& app)
{
return;
}
- BMCWEB_LOG_DEBUG << "Cable Id: " << cableId;
+ BMCWEB_LOG_DEBUG("Cable Id: {}", cableId);
constexpr std::array<std::string_view, 1> interfaces = {
"xyz.openbmc_project.Inventory.Item.Cable"};
dbus::utility::getSubTree(
@@ -137,7 +137,7 @@ inline void requestRoutesCable(App& app)
if (ec)
{
- BMCWEB_LOG_ERROR << "DBUS response error " << ec;
+ BMCWEB_LOG_ERROR("DBUS response error {}", ec);
messages::internalError(asyncResp->res);
return;
}
diff --git a/redfish-core/lib/certificate_service.hpp b/redfish-core/lib/certificate_service.hpp
index 62704c9046..0073bc9e6a 100644
--- a/redfish-core/lib/certificate_service.hpp
+++ b/redfish-core/lib/certificate_service.hpp
@@ -70,7 +70,7 @@ inline std::string getCertificateFromReqBody(
certificate, "CertificateType",
certificateType))
{
- BMCWEB_LOG_ERROR << "Required parameters are missing";
+ BMCWEB_LOG_ERROR("Required parameters are missing");
messages::internalError(asyncResp->res);
return {};
}
@@ -111,22 +111,22 @@ class CertificateFile
std::ofstream::trunc);
out << certString;
out.close();
- BMCWEB_LOG_DEBUG << "Creating certificate file"
- << certificateFile.string();
+ BMCWEB_LOG_DEBUG("Creating certificate file{}",
+ certificateFile.string());
}
}
~CertificateFile()
{
if (std::filesystem::exists(certDirectory))
{
- BMCWEB_LOG_DEBUG << "Removing certificate file"
- << certificateFile.string();
+ BMCWEB_LOG_DEBUG("Removing certificate file{}",
+ certificateFile.string());
std::error_code ec;
std::filesystem::remove_all(certDirectory, ec);
if (ec)
{
- BMCWEB_LOG_ERROR << "Failed to remove temp directory"
- << certDirectory.string();
+ BMCWEB_LOG_ERROR("Failed to remove temp directory{}",
+ certDirectory.string());
}
}
}
@@ -228,7 +228,7 @@ static void
const dbus::utility::MapperGetSubTreePathsResponse& certPaths) {
if (ec)
{
- BMCWEB_LOG_ERROR << "Certificate collection query failed: " << ec;
+ BMCWEB_LOG_ERROR("Certificate collection query failed: {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -241,7 +241,7 @@ static void
std::string certId = objPath.filename();
if (certId.empty())
{
- BMCWEB_LOG_ERROR << "Invalid certificate objPath " << certPath;
+ BMCWEB_LOG_ERROR("Invalid certificate objPath {}", certPath);
continue;
}
@@ -294,8 +294,8 @@ static void getCertificateProperties(
const std::string& certId, const boost::urls::url& certURL,
const std::string& name)
{
- BMCWEB_LOG_DEBUG << "getCertificateProperties Path=" << objectPath
- << " certId=" << certId << " certURl=" << certURL;
+ BMCWEB_LOG_DEBUG("getCertificateProperties Path={} certId={} certURl={}",
+ objectPath, certId, certURL);
sdbusplus::asio::getAllProperties(
*crow::connections::systemBus, service, objectPath, certs::certPropIntf,
[asyncResp, certURL, certId,
@@ -303,7 +303,7 @@ static void getCertificateProperties(
const dbus::utility::DBusPropertiesMap& properties) {
if (ec)
{
- BMCWEB_LOG_ERROR << "DBUS response error: " << ec;
+ BMCWEB_LOG_ERROR("DBUS response error: {}", ec);
messages::resourceNotFound(asyncResp->res, "Certificate", certId);
return;
}
@@ -389,7 +389,7 @@ static void
messages::resourceNotFound(asyncResp->res, "Certificate", id);
return;
}
- BMCWEB_LOG_INFO << "Certificate deleted";
+ BMCWEB_LOG_INFO("Certificate deleted");
asyncResp->res.result(boost::beast::http::status::no_content);
},
service, objectPath, certs::objDeleteIntf, "Delete");
@@ -479,7 +479,7 @@ inline void handleReplaceCertificateAction(
certificateUri, "CertificateType",
certificateType))
{
- BMCWEB_LOG_ERROR << "Required parameters are missing";
+ BMCWEB_LOG_ERROR("Required parameters are missing");
return;
}
@@ -503,7 +503,7 @@ inline void handleReplaceCertificateAction(
"CertificateUri");
return;
}
- BMCWEB_LOG_INFO << "Certificate URI to replace: " << certURI;
+ BMCWEB_LOG_INFO("Certificate URI to replace: {}", certURI);
boost::urls::result<boost::urls::url_view> parsedUrl =
boost::urls::parse_relative_ref(certURI);
@@ -559,7 +559,7 @@ inline void handleReplaceCertificateAction(
name](const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_ERROR << "DBUS response error: " << ec;
+ BMCWEB_LOG_ERROR("DBUS response error: {}", ec);
if (ec.value() ==
boost::system::linux_error::bad_request_descriptor)
{
@@ -570,8 +570,8 @@ inline void handleReplaceCertificateAction(
return;
}
getCertificateProperties(asyncResp, objectPath, service, id, url, name);
- BMCWEB_LOG_DEBUG << "HTTPS certificate install file="
- << certFile->getCertFilePath();
+ BMCWEB_LOG_DEBUG("HTTPS certificate install file={}",
+ certFile->getCertFilePath());
},
service, objectPath, certs::certReplaceIntf, "Replace",
certFile->getCertFilePath());
@@ -594,21 +594,20 @@ static void getCSR(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
const std::string& certObjPath,
const std::string& csrObjPath)
{
- BMCWEB_LOG_DEBUG << "getCSR CertObjectPath" << certObjPath
- << " CSRObjectPath=" << csrObjPath
- << " service=" << service;
+ BMCWEB_LOG_DEBUG("getCSR CertObjectPath{} CSRObjectPath={} service={}",
+ certObjPath, csrObjPath, service);
crow::connections::systemBus->async_method_call(
[asyncResp, certURI](const boost::system::error_code& ec,
const std::string& csr) {
if (ec)
{
- BMCWEB_LOG_ERROR << "DBUS response error: " << ec;
+ BMCWEB_LOG_ERROR("DBUS response error: {}", ec);
messages::internalError(asyncResp->res);
return;
}
if (csr.empty())
{
- BMCWEB_LOG_ERROR << "CSR read is empty";
+ BMCWEB_LOG_ERROR("CSR read is empty");
messages::internalError(asyncResp->res);
return;
}
@@ -793,16 +792,16 @@ inline void
// before completion.
if (ec != boost::asio::error::operation_aborted)
{
- BMCWEB_LOG_ERROR << "Async_wait failed " << ec;
+ BMCWEB_LOG_ERROR("Async_wait failed {}", ec);
}
return;
}
- BMCWEB_LOG_ERROR << "Timed out waiting for Generating CSR";
+ BMCWEB_LOG_ERROR("Timed out waiting for Generating CSR");
messages::internalError(asyncResp->res);
});
// create a matcher to wait on CSR object
- BMCWEB_LOG_DEBUG << "create matcher with path " << objectPath;
+ BMCWEB_LOG_DEBUG("create matcher with path {}", objectPath);
std::string match("type='signal',"
"interface='org.freedesktop.DBus.ObjectManager',"
"path='" +
@@ -815,7 +814,7 @@ inline void
timeout.cancel();
if (m.is_method_error())
{
- BMCWEB_LOG_ERROR << "Dbus method error!!!";
+ BMCWEB_LOG_ERROR("Dbus method error!!!");
messages::internalError(asyncResp->res);
return;
}
@@ -824,7 +823,7 @@ inline void
sdbusplus::message::object_path csrObjectPath;
m.read(csrObjectPath, interfacesProperties);
- BMCWEB_LOG_DEBUG << "CSR object added" << csrObjectPath.str;
+ BMCWEB_LOG_DEBUG("CSR object added{}", csrObjectPath.str);
for (const auto& interface : interfacesProperties)
{
if (interface.first == "xyz.openbmc_project.Certs.CSR")
@@ -839,7 +838,7 @@ inline void
[asyncResp](const boost::system::error_code& ec, const std::string&) {
if (ec)
{
- BMCWEB_LOG_ERROR << "DBUS response error: " << ec.message();
+ BMCWEB_LOG_ERROR("DBUS response error: {}", ec.message());
messages::internalError(asyncResp->res);
return;
}
@@ -909,7 +908,7 @@ inline void handleHTTPSCertificateCollectionPost(
{
return;
}
- BMCWEB_LOG_DEBUG << "HTTPSCertificateCollection::doPost";
+ BMCWEB_LOG_DEBUG("HTTPSCertificateCollection::doPost");
asyncResp->res.jsonValue["Name"] = "HTTPS Certificate";
asyncResp->res.jsonValue["Description"] = "HTTPS Certificate";
@@ -918,7 +917,7 @@ inline void handleHTTPSCertificateCollectionPost(
if (certFileBody.empty())
{
- BMCWEB_LOG_ERROR << "Cannot get certificate from request body.";
+ BMCWEB_LOG_ERROR("Cannot get certificate from request body.");
messages::unrecognizedRequestBody(asyncResp->res);
return;
}
@@ -931,7 +930,7 @@ inline void handleHTTPSCertificateCollectionPost(
const std::string& objectPath) {
if (ec)
{
- BMCWEB_LOG_ERROR << "DBUS response error: " << ec;
+ BMCWEB_LOG_ERROR("DBUS response error: {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -943,8 +942,8 @@ inline void handleHTTPSCertificateCollectionPost(
certId);
getCertificateProperties(asyncResp, objectPath, certs::httpsServiceName,
certId, certURL, "HTTPS Certificate");
- BMCWEB_LOG_DEBUG << "HTTPS certificate install file="
- << certFile->getCertFilePath();
+ BMCWEB_LOG_DEBUG("HTTPS certificate install file={}",
+ certFile->getCertFilePath());
},
certs::httpsServiceName, certs::httpsObjectPath, certs::certInstallIntf,
"Install", certFile->getCertFilePath());
@@ -959,7 +958,7 @@ inline void handleHTTPSCertificateGet(
return;
}
- BMCWEB_LOG_DEBUG << "HTTPS Certificate ID=" << id;
+ BMCWEB_LOG_DEBUG("HTTPS Certificate ID={}", id);
const boost::urls::url certURL = boost::urls::format(
"/redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/{}", id);
std::string objPath =
@@ -1024,7 +1023,7 @@ inline void handleLDAPCertificateCollectionPost(
if (certFileBody.empty())
{
- BMCWEB_LOG_ERROR << "Cannot get certificate from request body.";
+ BMCWEB_LOG_ERROR("Cannot get certificate from request body.");
messages::unrecognizedRequestBody(asyncResp->res);
return;
}
@@ -1037,7 +1036,7 @@ inline void handleLDAPCertificateCollectionPost(
const std::string& objectPath) {
if (ec)
{
- BMCWEB_LOG_ERROR << "DBUS response error: " << ec;
+ BMCWEB_LOG_ERROR("DBUS response error: {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -1048,8 +1047,8 @@ inline void handleLDAPCertificateCollectionPost(
"/redfish/v1/AccountService/LDAP/Certificates/{}", certId);
getCertificateProperties(asyncResp, objectPath, certs::ldapServiceName,
certId, certURL, "LDAP Certificate");
- BMCWEB_LOG_DEBUG << "LDAP certificate install file="
- << certFile->getCertFilePath();
+ BMCWEB_LOG_DEBUG("LDAP certificate install file={}",
+ certFile->getCertFilePath());
},
certs::ldapServiceName, certs::ldapObjectPath, certs::certInstallIntf,
"Install", certFile->getCertFilePath());
@@ -1064,7 +1063,7 @@ inline void handleLDAPCertificateGet(
return;
}
- BMCWEB_LOG_DEBUG << "LDAP Certificate ID=" << id;
+ BMCWEB_LOG_DEBUG("LDAP Certificate ID={}", id);
const boost::urls::url certURL = boost::urls::format(
"/redfish/v1/AccountService/LDAP/Certificates/{}", id);
std::string objPath =
@@ -1082,7 +1081,7 @@ inline void handleLDAPCertificateDelete(
return;
}
- BMCWEB_LOG_DEBUG << "Delete LDAP Certificate ID=" << id;
+ BMCWEB_LOG_DEBUG("Delete LDAP Certificate ID={}", id);
std::string objPath =
sdbusplus::message::object_path(certs::ldapObjectPath) / id;
@@ -1146,7 +1145,7 @@ inline void handleTrustStoreCertificateCollectionPost(
if (certFileBody.empty())
{
- BMCWEB_LOG_ERROR << "Cannot get certificate from request body.";
+ BMCWEB_LOG_ERROR("Cannot get certificate from request body.");
messages::unrecognizedRequestBody(asyncResp->res);
return;
}
@@ -1158,7 +1157,7 @@ inline void handleTrustStoreCertificateCollectionPost(
const std::string& objectPath) {
if (ec)
{
- BMCWEB_LOG_ERROR << "DBUS response error: " << ec;
+ BMCWEB_LOG_ERROR("DBUS response error: {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -1170,8 +1169,8 @@ inline void handleTrustStoreCertificateCollectionPost(
getCertificateProperties(asyncResp, objectPath,
certs::authorityServiceName, certId, certURL,
"TrustStore Certificate");
- BMCWEB_LOG_DEBUG << "TrustStore certificate install file="
- << certFile->getCertFilePath();
+ BMCWEB_LOG_DEBUG("TrustStore certificate install file={}",
+ certFile->getCertFilePath());
},
certs::authorityServiceName, certs::authorityObjectPath,
certs::certInstallIntf, "Install", certFile->getCertFilePath());
@@ -1186,7 +1185,7 @@ inline void handleTrustStoreCertificateGet(
return;
}
- BMCWEB_LOG_DEBUG << "Truststore Certificate ID=" << id;
+ BMCWEB_LOG_DEBUG("Truststore Certificate ID={}", id);
const boost::urls::url certURL = boost::urls::format(
"/redfish/v1/Managers/bmc/Truststore/Certificates/{}", id);
std::string objPath =
@@ -1204,7 +1203,7 @@ inline void handleTrustStoreCertificateDelete(
return;
}
- BMCWEB_LOG_DEBUG << "Delete TrustStore Certificate ID=" << id;
+ BMCWEB_LOG_DEBUG("Delete TrustStore Certificate ID={}", id);
std::string objPath =
sdbusplus::message::object_path(certs::authorityObjectPath) / id;
diff --git a/redfish-core/lib/chassis.hpp b/redfish-core/lib/chassis.hpp
index fc89d0356a..fbab894de3 100644
--- a/redfish-core/lib/chassis.hpp
+++ b/redfish-core/lib/chassis.hpp
@@ -62,7 +62,7 @@ inline void getStorageLink(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
const std::vector<std::string>& storageList) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "getStorageLink got DBUS response error";
+ BMCWEB_LOG_DEBUG("getStorageLink got DBUS response error");
return;
}
@@ -109,15 +109,15 @@ inline void getChassisState(std::shared_ptr<bmcweb::AsyncResp> asyncResp)
{
// Service not available, no error, just don't return
// chassis state info
- BMCWEB_LOG_DEBUG << "Service not available " << ec;
+ BMCWEB_LOG_DEBUG("Service not available {}", ec);
return;
}
- BMCWEB_LOG_DEBUG << "DBUS response error " << ec;
+ BMCWEB_LOG_DEBUG("DBUS response error {}", ec);
messages::internalError(asyncResp->res);
return;
}
- BMCWEB_LOG_DEBUG << "Chassis state: " << chassisState;
+ BMCWEB_LOG_DEBUG("Chassis state: {}", chassisState);
// Verify Chassis State
if (chassisState == "xyz.openbmc_project.State.Chassis.PowerState.On")
{
@@ -137,7 +137,7 @@ inline void getIntrusionByService(std::shared_ptr<bmcweb::AsyncResp> asyncResp,
const std::string& service,
const std::string& objPath)
{
- BMCWEB_LOG_DEBUG << "Get intrusion status by service \n";
+ BMCWEB_LOG_DEBUG("Get intrusion status by service ");
sdbusplus::asio::getProperty<std::string>(
*crow::connections::systemBus, service, objPath,
@@ -148,7 +148,7 @@ inline void getIntrusionByService(std::shared_ptr<bmcweb::AsyncResp> asyncResp,
{
// do not add err msg in redfish response, because this is not
// mandatory property
- BMCWEB_LOG_ERROR << "DBUS response error " << ec << "\n";
+ BMCWEB_LOG_ERROR("DBUS response error {}", ec);
return;
}
@@ -175,7 +175,7 @@ inline void
{
// do not add err msg in redfish response, because this is not
// mandatory property
- BMCWEB_LOG_INFO << "DBUS error: no matched iface " << ec << "\n";
+ BMCWEB_LOG_INFO("DBUS error: no matched iface {}", ec);
return;
}
// Iterate over all retrieved ObjectPaths.
@@ -220,7 +220,7 @@ inline void getChassisContainedBy(
{
if (ec.value() != EBADR)
{
- BMCWEB_LOG_ERROR << "DBUS response error " << ec;
+ BMCWEB_LOG_ERROR("DBUS response error {}", ec);
messages::internalError(asyncResp->res);
}
return;
@@ -231,7 +231,7 @@ inline void getChassisContainedBy(
}
if (upstreamChassisPaths.size() > 1)
{
- BMCWEB_LOG_ERROR << chassisId << " is contained by mutliple chassis";
+ BMCWEB_LOG_ERROR("{} is contained by mutliple chassis", chassisId);
messages::internalError(asyncResp->res);
return;
}
@@ -241,8 +241,8 @@ inline void getChassisContainedBy(
std::string upstreamChassis = upstreamChassisPath.filename();
if (upstreamChassis.empty())
{
- BMCWEB_LOG_WARNING << "Malformed upstream Chassis path "
- << upstreamChassisPath.str << " on " << chassisId;
+ BMCWEB_LOG_WARNING("Malformed upstream Chassis path {} on {}",
+ upstreamChassisPath.str, chassisId);
return;
}
@@ -259,7 +259,7 @@ inline void getChassisContains(
{
if (ec.value() != EBADR)
{
- BMCWEB_LOG_ERROR << "DBUS response error " << ec;
+ BMCWEB_LOG_ERROR("DBUS response error {}", ec);
messages::internalError(asyncResp->res);
}
return;
@@ -280,9 +280,8 @@ inline void getChassisContains(
std::string downstreamChassis = downstreamChassisPath.filename();
if (downstreamChassis.empty())
{
- BMCWEB_LOG_WARNING << "Malformed downstream Chassis path "
- << downstreamChassisPath.str << " on "
- << chassisId;
+ BMCWEB_LOG_WARNING("Malformed downstream Chassis path {} on {}",
+ downstreamChassisPath.str, chassisId);
continue;
}
nlohmann::json link;
@@ -298,7 +297,7 @@ inline void
const std::string& chassisId,
const std::string& chassisPath)
{
- BMCWEB_LOG_DEBUG << "Get chassis connectivity";
+ BMCWEB_LOG_DEBUG("Get chassis connectivity");
dbus::utility::getAssociationEndPoints(
chassisPath + "/contained_by",
@@ -333,7 +332,7 @@ inline void
const std::string& property) {
if (ec)
{
- BMCWEB_LOG_ERROR << "DBUS response error for Location";
+ BMCWEB_LOG_ERROR("DBUS response error for Location");
messages::internalError(asyncResp->res);
return;
}
@@ -354,7 +353,7 @@ inline void getChassisUUID(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
const std::string& chassisUUID) {
if (ec)
{
- BMCWEB_LOG_ERROR << "DBUS response error for UUID";
+ BMCWEB_LOG_ERROR("DBUS response error for UUID");
messages::internalError(asyncResp->res);
return;
}
@@ -382,7 +381,7 @@ inline void
const dbus::utility::MapperGetSubTreeResponse& subtree) {
if (ec)
{
- BMCWEB_LOG_ERROR << "DBUS response error " << ec;
+ BMCWEB_LOG_ERROR("DBUS response error {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -424,7 +423,7 @@ inline void
if (connectionNames.empty())
{
- BMCWEB_LOG_ERROR << "Got 0 Connection names";
+ BMCWEB_LOG_ERROR("Got 0 Connection names");
continue;
}
@@ -484,8 +483,8 @@ inline void
const std::string& property) {
if (ec2)
{
- BMCWEB_LOG_ERROR
- << "DBus response error for AssetTag: " << ec2;
+ BMCWEB_LOG_ERROR(
+ "DBus response error for AssetTag: {}", ec2);
messages::internalError(asyncResp->res);
return;
}
@@ -502,9 +501,9 @@ inline void
const bool property) {
if (ec2)
{
- BMCWEB_LOG_ERROR
- << "DBus response error for HotPluggable: "
- << ec2;
+ BMCWEB_LOG_ERROR(
+ "DBus response error for HotPluggable: {}",
+ ec2);
messages::internalError(asyncResp->res);
return;
}
@@ -693,7 +692,7 @@ inline void
const dbus::utility::MapperGetSubTreeResponse& subtree) {
if (ec)
{
- BMCWEB_LOG_ERROR << "DBUS response error " << ec;
+ BMCWEB_LOG_ERROR("DBUS response error {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -716,7 +715,7 @@ inline void
if (connectionNames.empty())
{
- BMCWEB_LOG_ERROR << "Got 0 Connection names";
+ BMCWEB_LOG_ERROR("Got 0 Connection names");
continue;
}
@@ -793,7 +792,7 @@ inline void handleChassisPowerCycleError(const boost::system::error_code& ec,
{
if (eMsg.get_error() == nullptr)
{
- BMCWEB_LOG_ERROR << "D-Bus response error: " << ec;
+ BMCWEB_LOG_ERROR("D-Bus response error: {}", ec);
messages::internalError(res);
return;
}
@@ -804,13 +803,13 @@ inline void handleChassisPowerCycleError(const boost::system::error_code& ec,
if (errorMessage ==
std::string_view("xyz.openbmc_project.State.Chassis.Error.BMCNotReady"))
{
- BMCWEB_LOG_DEBUG << "BMC not ready, operation not allowed right now";
+ BMCWEB_LOG_DEBUG("BMC not ready, operation not allowed right now");
messages::serviceTemporarilyUnavailable(res, "10");
return;
}
- BMCWEB_LOG_ERROR << "Chassis Power Cycle fail " << ec
- << " sdbusplus:" << errorMessage;
+ BMCWEB_LOG_ERROR("Chassis Power Cycle fail {} sdbusplus:{}", ec,
+ errorMessage);
messages::internalError(res);
}
@@ -828,7 +827,7 @@ inline void
const dbus::utility::MapperGetSubTreePathsResponse& chassisList) {
if (ec)
{
- BMCWEB_LOG_ERROR << "[mapper] Bad D-Bus request error: " << ec;
+ BMCWEB_LOG_ERROR("[mapper] Bad D-Bus request error: {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -877,7 +876,7 @@ inline void handleChassisResetActionInfoPost(
{
return;
}
- BMCWEB_LOG_DEBUG << "Post Chassis Reset.";
+ BMCWEB_LOG_DEBUG("Post Chassis Reset.");
std::string resetType;
@@ -888,8 +887,7 @@ inline void handleChassisResetActionInfoPost(
if (resetType != "PowerCycle")
{
- BMCWEB_LOG_DEBUG << "Invalid property value for ResetType: "
- << resetType;
+ BMCWEB_LOG_DEBUG("Invalid property value for ResetType: {}", resetType);
messages::actionParameterNotSupported(asyncResp->res, resetType,
"ResetType");
diff --git a/redfish-core/lib/ethernet.hpp b/redfish-core/lib/ethernet.hpp
index 36873b9108..218affef39 100644
--- a/redfish-core/lib/ethernet.hpp
+++ b/redfish-core/lib/ethernet.hpp
@@ -499,9 +499,9 @@ inline void extractIPV6Data(const std::string& ethifaceId,
}
else
{
- BMCWEB_LOG_ERROR
- << "Got extra property: " << property.first
- << " on the " << objpath.first.str << " object";
+ BMCWEB_LOG_ERROR(
+ "Got extra property: {} on the {} object",
+ property.first, objpath.first.str);
}
}
}
@@ -593,9 +593,9 @@ inline void extractIPData(const std::string& ethifaceId,
}
else
{
- BMCWEB_LOG_ERROR
- << "Got extra property: " << property.first
- << " on the " << objpath.first.str << " object";
+ BMCWEB_LOG_ERROR(
+ "Got extra property: {} on the {} object",
+ property.first, objpath.first.str);
}
}
// Check if given address is local, or global
@@ -1047,7 +1047,7 @@ inline void setDHCPEnabled(const std::string& ifaceId,
[asyncResp](const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_ERROR << "D-Bus responses error: " << ec;
+ BMCWEB_LOG_ERROR("D-Bus responses error: {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -1066,7 +1066,7 @@ inline void setEthernetInterfaceBoolProperty(
[asyncResp](const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_ERROR << "D-Bus responses error: " << ec;
+ BMCWEB_LOG_ERROR("D-Bus responses error: {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -1076,7 +1076,7 @@ inline void setEthernetInterfaceBoolProperty(
inline void setDHCPv4Config(const std::string& propertyName, const bool& value,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
{
- BMCWEB_LOG_DEBUG << propertyName << " = " << value;
+ BMCWEB_LOG_DEBUG("{} = {}", propertyName, value);
sdbusplus::asio::setProperty(
*crow::connections::systemBus, "xyz.openbmc_project.Network",
"/xyz/openbmc_project/network/dhcp",
@@ -1084,7 +1084,7 @@ inline void setDHCPv4Config(const std::string& propertyName, const bool& value,
[asyncResp](const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_ERROR << "D-Bus responses error: " << ec;
+ BMCWEB_LOG_ERROR("D-Bus responses error: {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -1191,14 +1191,14 @@ inline void handleDHCPPatch(const std::string& ifaceId,
nextUseDomain = ethData.hostNameEnabled;
}
- BMCWEB_LOG_DEBUG << "set DHCPEnabled...";
+ BMCWEB_LOG_DEBUG("set DHCPEnabled...");
setDHCPEnabled(ifaceId, "DHCPEnabled", nextv4DHCPState, nextv6DHCPState,
asyncResp);
- BMCWEB_LOG_DEBUG << "set DNSEnabled...";
+ BMCWEB_LOG_DEBUG("set DNSEnabled...");
setDHCPv4Config("DNSEnabled", nextDNS, asyncResp);
- BMCWEB_LOG_DEBUG << "set NTPEnabled...";
+ BMCWEB_LOG_DEBUG("set NTPEnabled...");
setDHCPv4Config("NTPEnabled", nextNTP, asyncResp);
- BMCWEB_LOG_DEBUG << "set HostNameEnabled...";
+ BMCWEB_LOG_DEBUG("set HostNameEnabled...");
setDHCPv4Config("HostNameEnabled", nextUseDomain, asyncResp);
}
@@ -1707,7 +1707,7 @@ inline void afterDelete(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
messages::internalError(asyncResp->res);
return;
}
- BMCWEB_LOG_DEBUG << "DBus error: " << dbusError->name;
+ BMCWEB_LOG_DEBUG("DBus error: {}", dbusError->name);
if (std::string_view("org.freedesktop.DBus.Error.UnknownObject") ==
dbusError->name)
@@ -1741,7 +1741,7 @@ inline void afterVlanCreate(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
messages::internalError(asyncResp->res);
return;
}
- BMCWEB_LOG_DEBUG << "DBus error: " << dbusError->name;
+ BMCWEB_LOG_DEBUG("DBus error: {}", dbusError->name);
if (std::string_view(
"xyz.openbmc_project.Common.Error.ResourceNotFound") ==
@@ -1856,7 +1856,7 @@ inline void requestEthernetInterfacesRoutes(App& app)
"Links/RelatedInterfaces/0/@odata.id");
return;
}
- BMCWEB_LOG_INFO << "Parent Interface URI: " << parentInterfaceUri;
+ BMCWEB_LOG_INFO("Parent Interface URI: {}", parentInterfaceUri);
boost::urls::result<boost::urls::url_view> parsedUri =
boost::urls::parse_relative_ref(parentInterfaceUri);
diff --git a/redfish-core/lib/event_service.hpp b/redfish-core/lib/event_service.hpp
index 4919dece59..35e3a1cfb9 100644
--- a/redfish-core/lib/event_service.hpp
+++ b/redfish-core/lib/event_service.hpp
@@ -198,7 +198,7 @@ inline void doSubscriptionCollection(
return;
}
- BMCWEB_LOG_ERROR << "D-Bus response error on GetManagedObjects " << ec;
+ BMCWEB_LOG_ERROR("D-Bus response error on GetManagedObjects {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -209,7 +209,7 @@ inline void doSubscriptionCollection(
const std::string snmpId = path.filename();
if (snmpId.empty())
{
- BMCWEB_LOG_ERROR << "The SNMP client ID is wrong";
+ BMCWEB_LOG_ERROR("The SNMP client ID is wrong");
messages::internalError(asyncResp->res);
return;
}
@@ -324,8 +324,7 @@ inline void requestRoutesEventDestinationCollection(App& app)
if (!crow::utility::validateAndSplitUrl(destUrl, urlProto, host, port,
path))
{
- BMCWEB_LOG_WARNING
- << "Failed to validate and split destination url";
+ BMCWEB_LOG_WARNING("Failed to validate and split destination url");
messages::propertyValueFormatError(asyncResp->res, destUrl,
"Destination");
return;
diff --git a/redfish-core/lib/eventservice_sse.hpp b/redfish-core/lib/eventservice_sse.hpp
index 864383c201..4ad29a6707 100644
--- a/redfish-core/lib/eventservice_sse.hpp
+++ b/redfish-core/lib/eventservice_sse.hpp
@@ -13,7 +13,7 @@ inline void createSubscription(crow::sse_socket::Connection& conn)
if ((manager.getNumberOfSubscriptions() >= maxNoOfSubscriptions) ||
manager.getNumberOfSSESubscriptions() >= maxNoOfSSESubscriptions)
{
- BMCWEB_LOG_WARNING << "Max SSE subscriptions reached";
+ BMCWEB_LOG_WARNING("Max SSE subscriptions reached");
conn.close("Max SSE subscriptions reached");
return;
}
diff --git a/redfish-core/lib/fabric_adapters.hpp b/redfish-core/lib/fabric_adapters.hpp
index d3119d3404..2a85f42d2c 100644
--- a/redfish-core/lib/fabric_adapters.hpp
+++ b/redfish-core/lib/fabric_adapters.hpp
@@ -33,7 +33,7 @@ inline void handleAdapterError(const boost::system::error_code& ec,
return;
}
- BMCWEB_LOG_ERROR << "DBus method call failed with error " << ec.value();
+ BMCWEB_LOG_ERROR("DBus method call failed with error {}", ec.value());
messages::internalError(res);
}
@@ -50,7 +50,7 @@ inline void getFabricAdapterLocation(
{
if (ec.value() != EBADR)
{
- BMCWEB_LOG_ERROR << "DBUS response error for Location";
+ BMCWEB_LOG_ERROR("DBUS response error for Location");
messages::internalError(asyncResp->res);
}
return;
@@ -76,7 +76,7 @@ inline void
{
if (ec.value() != EBADR)
{
- BMCWEB_LOG_ERROR << "DBUS response error for Properties";
+ BMCWEB_LOG_ERROR("DBUS response error for Properties");
messages::internalError(asyncResp->res);
}
return;
@@ -133,7 +133,7 @@ inline void
{
if (ec.value() != EBADR)
{
- BMCWEB_LOG_ERROR << "DBUS response error for State";
+ BMCWEB_LOG_ERROR("DBUS response error for State");
messages::internalError(asyncResp->res);
}
return;
@@ -160,7 +160,7 @@ inline void
{
if (ec.value() != EBADR)
{
- BMCWEB_LOG_ERROR << "DBUS response error for Health";
+ BMCWEB_LOG_ERROR("DBUS response error for Health");
messages::internalError(asyncResp->res);
}
return;
@@ -240,7 +240,7 @@ inline void getValidFabricAdapterPath(
return;
}
}
- BMCWEB_LOG_WARNING << "Adapter not found";
+ BMCWEB_LOG_WARNING("Adapter not found");
messages::resourceNotFound(asyncResp->res, "FabricAdapter", adapterId);
});
}
diff --git a/redfish-core/lib/fan.hpp b/redfish-core/lib/fan.hpp
index 76805315d3..3a7e2e2510 100644
--- a/redfish-core/lib/fan.hpp
+++ b/redfish-core/lib/fan.hpp
@@ -68,9 +68,9 @@ inline void getFanPaths(
{
if (ec.value() != EBADR)
{
- BMCWEB_LOG_ERROR
- << "DBUS response error for getAssociatedSubTreePaths "
- << ec.value();
+ BMCWEB_LOG_ERROR(
+ "DBUS response error for getAssociatedSubTreePaths {}",
+ ec.value());
messages::internalError(asyncResp->res);
}
return;
@@ -185,8 +185,8 @@ static inline void handleFanPath(
const dbus::utility::MapperGetObject& object) {
if (ec || object.empty())
{
- BMCWEB_LOG_ERROR << "DBUS response error on getDbusObject "
- << ec.value();
+ BMCWEB_LOG_ERROR("DBUS response error on getDbusObject {}",
+ ec.value());
messages::internalError(asyncResp->res);
return;
}
@@ -195,7 +195,7 @@ static inline void handleFanPath(
return;
}
- BMCWEB_LOG_WARNING << "Fan not found " << fanId;
+ BMCWEB_LOG_WARNING("Fan not found {}", fanId);
messages::resourceNotFound(asyncResp->res, "Fan", fanId);
}
@@ -239,8 +239,8 @@ inline void getFanHealth(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
{
if (ec.value() != EBADR)
{
- BMCWEB_LOG_ERROR << "DBUS response error for Health "
- << ec.value();
+ BMCWEB_LOG_ERROR("DBUS response error for Health {}",
+ ec.value());
messages::internalError(asyncResp->res);
}
return;
@@ -264,8 +264,8 @@ inline void getFanState(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
{
if (ec.value() != EBADR)
{
- BMCWEB_LOG_ERROR << "DBUS response error for State "
- << ec.value();
+ BMCWEB_LOG_ERROR("DBUS response error for State {}",
+ ec.value());
messages::internalError(asyncResp->res);
}
return;
@@ -291,8 +291,8 @@ inline void getFanAsset(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
{
if (ec.value() != EBADR)
{
- BMCWEB_LOG_ERROR << "DBUS response error for Properties"
- << ec.value();
+ BMCWEB_LOG_ERROR("DBUS response error for Properties{}",
+ ec.value());
messages::internalError(asyncResp->res);
}
return;
@@ -348,8 +348,8 @@ inline void getFanLocation(const std::shared_ptr<bmcweb::AsyncResp>& aResp,
{
if (ec.value() != EBADR)
{
- BMCWEB_LOG_ERROR << "DBUS response error for Location"
- << ec.value();
+ BMCWEB_LOG_ERROR("DBUS response error for Location{}",
+ ec.value());
messages::internalError(aResp->res);
}
return;
diff --git a/redfish-core/lib/health.hpp b/redfish-core/lib/health.hpp
index c5249f202e..55f79bc4bc 100644
--- a/redfish-core/lib/health.hpp
+++ b/redfish-core/lib/health.hpp
@@ -114,8 +114,8 @@ struct HealthPopulate : std::enable_shared_from_this<HealthPopulate>
std::get_if<std::vector<std::string>>(&value);
if (endpoints == nullptr)
{
- BMCWEB_LOG_ERROR << "Illegal association at "
- << path.str;
+ BMCWEB_LOG_ERROR("Illegal association at {}",
+ path.str);
continue;
}
bool containsChild = false;
diff --git a/redfish-core/lib/hypervisor_system.hpp b/redfish-core/lib/hypervisor_system.hpp
index 72d02b9f5b..0a8936d1d7 100644
--- a/redfish-core/lib/hypervisor_system.hpp
+++ b/redfish-core/lib/hypervisor_system.hpp
@@ -34,7 +34,7 @@ namespace redfish
inline void
getHypervisorState(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
{
- BMCWEB_LOG_DEBUG << "Get hypervisor state information.";
+ BMCWEB_LOG_DEBUG("Get hypervisor state information.");
sdbusplus::asio::getProperty<std::string>(
*crow::connections::systemBus, "xyz.openbmc_project.State.Hypervisor",
"/xyz/openbmc_project/state/hypervisor0",
@@ -43,13 +43,13 @@ inline void
const std::string& hostState) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS response error " << ec;
+ BMCWEB_LOG_DEBUG("DBUS response error {}", ec);
// This is an optional D-Bus object so just return if
// error occurs
return;
}
- BMCWEB_LOG_DEBUG << "Hypervisor state: " << hostState;
+ BMCWEB_LOG_DEBUG("Hypervisor state: {}", hostState);
// Verify Host State
if (hostState == "xyz.openbmc_project.State.Host.HostState.Running")
{
@@ -106,7 +106,7 @@ inline void
inline void
getHypervisorActions(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
{
- BMCWEB_LOG_DEBUG << "Get hypervisor actions.";
+ BMCWEB_LOG_DEBUG("Get hypervisor actions.");
constexpr std::array<std::string_view, 1> interfaces = {
"xyz.openbmc_project.State.Host"};
dbus::utility::getDbusObject(
@@ -117,7 +117,7 @@ inline void
objInfo) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS response error " << ec;
+ BMCWEB_LOG_DEBUG("DBUS response error {}", ec);
// This is an optional D-Bus object so just return if
// error occurs
return;
@@ -259,9 +259,9 @@ inline bool extractHypervisorInterfaceData(
}
else
{
- BMCWEB_LOG_ERROR
- << "Got extra property: " << property.first
- << " on the " << objpath.first.str << " object";
+ BMCWEB_LOG_ERROR(
+ "Got extra property: {} on the {} object",
+ property.first, objpath.first.str);
}
}
}
@@ -330,7 +330,7 @@ void getHypervisorIfaceData(const std::string& ethIfaceId,
ipv4Data);
if (!found)
{
- BMCWEB_LOG_INFO << "Hypervisor Interface not found";
+ BMCWEB_LOG_INFO("Hypervisor Interface not found");
}
callback(found, ethData, ipv4Data);
});
@@ -349,8 +349,8 @@ inline void setHypervisorIPv4Address(
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
const std::string& ethIfaceId, const std::string& ipv4Address)
{
- BMCWEB_LOG_DEBUG << "Setting the Hypervisor IPaddress : " << ipv4Address
- << " on Iface: " << ethIfaceId;
+ BMCWEB_LOG_DEBUG("Setting the Hypervisor IPaddress : {} on Iface: {}",
+ ipv4Address, ethIfaceId);
sdbusplus::asio::setProperty(
*crow::connections::systemBus, "xyz.openbmc_project.Settings",
"/xyz/openbmc_project/network/hypervisor/" + ethIfaceId + "/ipv4/addr0",
@@ -358,10 +358,10 @@ inline void setHypervisorIPv4Address(
[asyncResp](const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_ERROR << "DBUS response error " << ec;
+ BMCWEB_LOG_ERROR("DBUS response error {}", ec);
return;
}
- BMCWEB_LOG_DEBUG << "Hypervisor IPaddress is Set";
+ BMCWEB_LOG_DEBUG("Hypervisor IPaddress is Set");
});
}
@@ -378,8 +378,8 @@ inline void
setHypervisorIPv4Subnet(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
const std::string& ethIfaceId, const uint8_t subnet)
{
- BMCWEB_LOG_DEBUG << "Setting the Hypervisor subnet : " << subnet
- << " on Iface: " << ethIfaceId;
+ BMCWEB_LOG_DEBUG("Setting the Hypervisor subnet : {} on Iface: {}", subnet,
+ ethIfaceId);
sdbusplus::asio::setProperty(
*crow::connections::systemBus, "xyz.openbmc_project.Settings",
@@ -388,10 +388,10 @@ inline void
[asyncResp](const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_ERROR << "DBUS response error " << ec;
+ BMCWEB_LOG_ERROR("DBUS response error {}", ec);
return;
}
- BMCWEB_LOG_DEBUG << "SubnetMask is Set";
+ BMCWEB_LOG_DEBUG("SubnetMask is Set");
});
}
@@ -408,8 +408,8 @@ inline void setHypervisorIPv4Gateway(
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
const std::string& gateway)
{
- BMCWEB_LOG_DEBUG
- << "Setting the DefaultGateway to the last configured gateway";
+ BMCWEB_LOG_DEBUG(
+ "Setting the DefaultGateway to the last configured gateway");
sdbusplus::asio::setProperty(
*crow::connections::systemBus, "xyz.openbmc_project.Settings",
@@ -418,10 +418,10 @@ inline void setHypervisorIPv4Gateway(
gateway, [asyncResp](const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_ERROR << "DBUS response error " << ec;
+ BMCWEB_LOG_ERROR("DBUS response error {}", ec);
return;
}
- BMCWEB_LOG_DEBUG << "Default Gateway is Set";
+ BMCWEB_LOG_DEBUG("Default Gateway is Set");
});
}
@@ -515,7 +515,7 @@ inline void setDHCPEnabled(const std::string& ifaceId, bool ipv4DHCPEnabled,
[asyncResp](const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_ERROR << "D-Bus responses error: " << ec;
+ BMCWEB_LOG_ERROR("D-Bus responses error: {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -542,11 +542,11 @@ inline void setDHCPEnabled(const std::string& ifaceId, bool ipv4DHCPEnabled,
[asyncResp](const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_ERROR << "DBUS response error " << ec;
+ BMCWEB_LOG_ERROR("DBUS response error {}", ec);
messages::internalError(asyncResp->res);
return;
}
- BMCWEB_LOG_DEBUG << "Hypervisor IPaddress Origin is Set";
+ BMCWEB_LOG_DEBUG("Hypervisor IPaddress Origin is Set");
});
}
@@ -637,8 +637,8 @@ inline void handleHypervisorIPv4StaticPatch(
return;
}
- BMCWEB_LOG_DEBUG << "Calling createHypervisorIPv4 on : " << ifaceId
- << "," << *address;
+ BMCWEB_LOG_DEBUG("Calling createHypervisorIPv4 on : {},{}", ifaceId,
+ *address);
createHypervisorIPv4(ifaceId, prefixLength, *gateway, *address,
asyncResp);
// Set the DHCPEnabled to false since the Static IPv4 is set
@@ -786,7 +786,7 @@ inline void handleHypervisorSystemGet(
messages::resourceNotFound(asyncResp->res, "System", "hypervisor");
return;
}
- BMCWEB_LOG_DEBUG << "Hypervisor is available";
+ BMCWEB_LOG_DEBUG("Hypervisor is available");
asyncResp->res.jsonValue["@odata.type"] =
"#ComputerSystem.v1_6_0.ComputerSystem";
@@ -888,8 +888,8 @@ inline void handleHypervisorEthernetInterfacePatch(
if ((ipv4Json.is_null()) &&
(translateDhcpEnabledToBool(ethData.dhcpEnabled, true)))
{
- BMCWEB_LOG_INFO << "Ignoring the delete on ipv4StaticAddresses "
- "as the interface is DHCP enabled";
+ BMCWEB_LOG_INFO("Ignoring the delete on ipv4StaticAddresses "
+ "as the interface is DHCP enabled");
}
else
{
@@ -929,7 +929,7 @@ inline void handleHypervisorResetActionGet(
objInfo) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS response error " << ec;
+ BMCWEB_LOG_DEBUG("DBUS response error {}", ec);
// No hypervisor objects found by mapper
if (ec.value() == boost::system::errc::io_error)
@@ -1012,7 +1012,7 @@ inline void handleHypervisorSystemResetPost(
[asyncResp, resetType](const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_ERROR << "D-Bus responses error: " << ec;
+ BMCWEB_LOG_ERROR("D-Bus responses error: {}", ec);
if (ec.value() == boost::asio::error::invalid_argument)
{
messages::actionParameterNotSupported(asyncResp->res,
diff --git a/redfish-core/lib/led.hpp b/redfish-core/lib/led.hpp
index 53df1db83b..f36a319677 100644
--- a/redfish-core/lib/led.hpp
+++ b/redfish-core/lib/led.hpp
@@ -35,7 +35,7 @@ namespace redfish
inline void
getIndicatorLedState(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
{
- BMCWEB_LOG_DEBUG << "Get led groups";
+ BMCWEB_LOG_DEBUG("Get led groups");
sdbusplus::asio::getProperty<bool>(
*crow::connections::systemBus, "xyz.openbmc_project.LED.GroupManager",
"/xyz/openbmc_project/led/groups/enclosure_identify_blink",
@@ -45,8 +45,8 @@ inline void
// proceed to get enclosure_identify state.
if (ec == boost::system::errc::invalid_argument)
{
- BMCWEB_LOG_DEBUG
- << "Get identity blinking LED failed, missmatch in property type";
+ BMCWEB_LOG_DEBUG(
+ "Get identity blinking LED failed, missmatch in property type");
messages::internalError(asyncResp->res);
return;
}
@@ -67,8 +67,8 @@ inline void
const bool ledOn) {
if (ec2 == boost::system::errc::invalid_argument)
{
- BMCWEB_LOG_DEBUG
- << "Get enclosure identity led failed, missmatch in property type";
+ BMCWEB_LOG_DEBUG(
+ "Get enclosure identity led failed, missmatch in property type");
messages::internalError(asyncResp->res);
return;
}
@@ -103,7 +103,7 @@ inline void
setIndicatorLedState(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
const std::string& ledState)
{
- BMCWEB_LOG_DEBUG << "Set led groups";
+ BMCWEB_LOG_DEBUG("Set led groups");
bool ledOn = false;
bool ledBlinkng = false;
@@ -146,7 +146,7 @@ inline void
[asyncResp](const boost::system::error_code& ec2) {
if (ec2)
{
- BMCWEB_LOG_DEBUG << "DBUS response error " << ec2;
+ BMCWEB_LOG_DEBUG("DBUS response error {}", ec2);
messages::internalError(asyncResp->res);
return;
}
@@ -165,7 +165,7 @@ inline void
inline void getLocationIndicatorActive(
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
{
- BMCWEB_LOG_DEBUG << "Get LocationIndicatorActive";
+ BMCWEB_LOG_DEBUG("Get LocationIndicatorActive");
sdbusplus::asio::getProperty<bool>(
*crow::connections::systemBus, "xyz.openbmc_project.LED.GroupManager",
"/xyz/openbmc_project/led/groups/enclosure_identify_blink",
@@ -175,8 +175,8 @@ inline void getLocationIndicatorActive(
// proceed to get enclosure_identify state.
if (ec == boost::system::errc::invalid_argument)
{
- BMCWEB_LOG_DEBUG
- << "Get identity blinking LED failed, missmatch in property type";
+ BMCWEB_LOG_DEBUG(
+ "Get identity blinking LED failed, missmatch in property type");
messages::internalError(asyncResp->res);
return;
}
@@ -197,8 +197,8 @@ inline void getLocationIndicatorActive(
const bool ledOn) {
if (ec2 == boost::system::errc::invalid_argument)
{
- BMCWEB_LOG_DEBUG
- << "Get enclosure identity led failed, missmatch in property type";
+ BMCWEB_LOG_DEBUG(
+ "Get enclosure identity led failed, missmatch in property type");
messages::internalError(asyncResp->res);
return;
}
@@ -224,7 +224,7 @@ inline void getLocationIndicatorActive(
inline void setLocationIndicatorActive(
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp, const bool ledState)
{
- BMCWEB_LOG_DEBUG << "Set LocationIndicatorActive";
+ BMCWEB_LOG_DEBUG("Set LocationIndicatorActive");
sdbusplus::asio::setProperty(
*crow::connections::systemBus, "xyz.openbmc_project.LED.GroupManager",
@@ -244,7 +244,7 @@ inline void setLocationIndicatorActive(
[asyncResp](const boost::system::error_code& ec2) {
if (ec2)
{
- BMCWEB_LOG_DEBUG << "DBUS response error " << ec2;
+ BMCWEB_LOG_DEBUG("DBUS response error {}", ec2);
messages::internalError(asyncResp->res);
return;
}
diff --git a/redfish-core/lib/log_services.hpp b/redfish-core/lib/log_services.hpp
index 72930cc79f..9cb1fe0580 100644
--- a/redfish-core/lib/log_services.hpp
+++ b/redfish-core/lib/log_services.hpp
@@ -159,8 +159,7 @@ inline static bool getEntryTimestamp(sd_journal* journal,
ret = sd_journal_get_realtime_usec(journal, &timestamp);
if (ret < 0)
{
- BMCWEB_LOG_ERROR << "Failed to read entry timestamp: "
- << strerror(-ret);
+ BMCWEB_LOG_ERROR("Failed to read entry timestamp: {}", strerror(-ret));
return false;
}
entryTimestamp = redfish::time_utils::getDateTimeUintUs(timestamp);
@@ -183,8 +182,7 @@ inline static bool getUniqueEntryID(sd_journal* journal, std::string& entryID,
ret = sd_journal_get_realtime_usec(journal, &curTs);
if (ret < 0)
{
- BMCWEB_LOG_ERROR << "Failed to read entry timestamp: "
- << strerror(-ret);
+ BMCWEB_LOG_ERROR("Failed to read entry timestamp: {}", strerror(-ret));
return false;
}
// If the timestamp isn't unique, increment the index
@@ -448,8 +446,8 @@ static std::string getDumpEntriesPath(const std::string& dumpType)
}
else
{
- BMCWEB_LOG_ERROR << "getDumpEntriesPath() invalid dump type: "
- << dumpType;
+ BMCWEB_LOG_ERROR("getDumpEntriesPath() invalid dump type: {}",
+ dumpType);
}
// Returns empty string on error
@@ -475,7 +473,7 @@ inline void
const dbus::utility::ManagedObjectType& objects) {
if (ec)
{
- BMCWEB_LOG_ERROR << "DumpEntry resp_handler got error " << ec;
+ BMCWEB_LOG_ERROR("DumpEntry resp_handler got error {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -592,7 +590,7 @@ inline void
const dbus::utility::ManagedObjectType& resp) {
if (ec)
{
- BMCWEB_LOG_ERROR << "DumpEntry resp_handler got error " << ec;
+ BMCWEB_LOG_ERROR("DumpEntry resp_handler got error {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -665,7 +663,7 @@ inline void
}
if (!foundDumpEntry)
{
- BMCWEB_LOG_WARNING << "Can't find Dump Entry " << entryID;
+ BMCWEB_LOG_WARNING("Can't find Dump Entry {}", entryID);
messages::resourceNotFound(asyncResp->res, dumpType + " dump",
entryID);
return;
@@ -679,7 +677,7 @@ inline void deleteDumpEntry(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
{
auto respHandler =
[asyncResp, entryID](const boost::system::error_code& ec) {
- BMCWEB_LOG_DEBUG << "Dump Entry doDelete callback: Done";
+ BMCWEB_LOG_DEBUG("Dump Entry doDelete callback: Done");
if (ec)
{
if (ec.value() == EBADR)
@@ -687,8 +685,9 @@ inline void deleteDumpEntry(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
messages::resourceNotFound(asyncResp->res, "LogEntry", entryID);
return;
}
- BMCWEB_LOG_ERROR << "Dump (DBus) doDelete respHandler got error "
- << ec << " entryID=" << entryID;
+ BMCWEB_LOG_ERROR(
+ "Dump (DBus) doDelete respHandler got error {} entryID={}", ec,
+ entryID);
messages::internalError(asyncResp->res);
return;
}
@@ -728,7 +727,7 @@ inline DumpCreationProgress
const std::string* value = std::get_if<std::string>(&val);
if (value == nullptr)
{
- BMCWEB_LOG_ERROR << "Status property value is null";
+ BMCWEB_LOG_ERROR("Status property value is null");
return DumpCreationProgress::DUMP_CREATE_FAILED;
}
return mapDbusStatusToDumpProgress(*value);
@@ -762,7 +761,7 @@ inline void createDumpTaskCallback(
if (dumpEntryPath.empty())
{
- BMCWEB_LOG_ERROR << "Invalid dump type received";
+ BMCWEB_LOG_ERROR("Invalid dump type received");
messages::internalError(asyncResp->res);
return;
}
@@ -774,8 +773,8 @@ inline void createDumpTaskCallback(
const std::string& introspectXml) {
if (ec)
{
- BMCWEB_LOG_ERROR << "Introspect call failed with error: "
- << ec.message();
+ BMCWEB_LOG_ERROR("Introspect call failed with error: {}",
+ ec.message());
messages::internalError(asyncResp->res);
return;
}
@@ -790,7 +789,7 @@ inline void createDumpTaskCallback(
tinyxml2::XMLNode* pRoot = doc.FirstChildElement("node");
if (pRoot == nullptr)
{
- BMCWEB_LOG_ERROR << "XML document failed to parse";
+ BMCWEB_LOG_ERROR("XML document failed to parse");
messages::internalError(asyncResp->res);
return;
}
@@ -822,8 +821,8 @@ inline void createDumpTaskCallback(
const std::shared_ptr<task::TaskData>& taskData) {
if (ec2)
{
- BMCWEB_LOG_ERROR << createdObjPath.str
- << ": Error in creating dump";
+ BMCWEB_LOG_ERROR("{}: Error in creating dump",
+ createdObjPath.str);
taskData->messages.emplace_back(messages::internalError());
taskData->state = "Cancelled";
return task::completed;
@@ -839,16 +838,16 @@ inline void createDumpTaskCallback(
getDumpCompletionStatus(values);
if (dumpStatus == DumpCreationProgress::DUMP_CREATE_FAILED)
{
- BMCWEB_LOG_ERROR << createdObjPath.str
- << ": Error in creating dump";
+ BMCWEB_LOG_ERROR("{}: Error in creating dump",
+ createdObjPath.str);
taskData->state = "Cancelled";
return task::completed;
}
if (dumpStatus == DumpCreationProgress::DUMP_CREATE_INPROGRESS)
{
- BMCWEB_LOG_DEBUG << createdObjPath.str
- << ": Dump creation task is in progress";
+ BMCWEB_LOG_DEBUG("{}: Dump creation task is in progress",
+ createdObjPath.str);
return !task::completed;
}
}
@@ -864,8 +863,8 @@ inline void createDumpTaskCallback(
taskData->payload->httpHeaders.emplace_back(std::move(headerLoc));
- BMCWEB_LOG_DEBUG << createdObjPath.str
- << ": Dump creation task completed";
+ BMCWEB_LOG_DEBUG("{}: Dump creation task completed",
+ createdObjPath.str);
taskData->state = "Completed";
return task::completed;
},
@@ -907,8 +906,8 @@ inline void createDump(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
{
if (!oemDiagnosticDataType || !diagnosticDataType)
{
- BMCWEB_LOG_ERROR
- << "CreateDump action parameter 'DiagnosticDataType'/'OEMDiagnosticDataType' value not found!";
+ BMCWEB_LOG_ERROR(
+ "CreateDump action parameter 'DiagnosticDataType'/'OEMDiagnosticDataType' value not found!");
messages::actionParameterMissing(
asyncResp->res, "CollectDiagnosticData",
"DiagnosticDataType & OEMDiagnosticDataType");
@@ -917,7 +916,7 @@ inline void createDump(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
if ((*oemDiagnosticDataType != "System") ||
(*diagnosticDataType != "OEM"))
{
- BMCWEB_LOG_ERROR << "Wrong parameter values passed";
+ BMCWEB_LOG_ERROR("Wrong parameter values passed");
messages::internalError(asyncResp->res);
return;
}
@@ -927,16 +926,16 @@ inline void createDump(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
{
if (!diagnosticDataType)
{
- BMCWEB_LOG_ERROR
- << "CreateDump action parameter 'DiagnosticDataType' not found!";
+ BMCWEB_LOG_ERROR(
+ "CreateDump action parameter 'DiagnosticDataType' not found!");
messages::actionParameterMissing(
asyncResp->res, "CollectDiagnosticData", "DiagnosticDataType");
return;
}
if (*diagnosticDataType != "Manager")
{
- BMCWEB_LOG_ERROR
- << "Wrong parameter value passed for 'DiagnosticDataType'";
+ BMCWEB_LOG_ERROR(
+ "Wrong parameter value passed for 'DiagnosticDataType'");
messages::internalError(asyncResp->res);
return;
}
@@ -944,7 +943,7 @@ inline void createDump(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
}
else
{
- BMCWEB_LOG_ERROR << "CreateDump failed. Unknown dump type";
+ BMCWEB_LOG_ERROR("CreateDump failed. Unknown dump type");
messages::internalError(asyncResp->res);
return;
}
@@ -969,7 +968,7 @@ inline void createDump(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
const sdbusplus::message::object_path& objPath) mutable {
if (ec)
{
- BMCWEB_LOG_ERROR << "CreateDump resp_handler got error " << ec;
+ BMCWEB_LOG_ERROR("CreateDump resp_handler got error {}", ec);
const sd_bus_error* dbusError = msg.get_error();
if (dbusError == nullptr)
{
@@ -977,8 +976,8 @@ inline void createDump(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
return;
}
- BMCWEB_LOG_ERROR << "CreateDump DBus error: " << dbusError->name
- << " and error msg: " << dbusError->message;
+ BMCWEB_LOG_ERROR("CreateDump DBus error: {} and error msg: {}",
+ dbusError->name, dbusError->message);
if (std::string_view(
"xyz.openbmc_project.Common.Error.NotAllowed") ==
dbusError->name)
@@ -1010,7 +1009,7 @@ inline void createDump(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
messages::internalError(asyncResp->res);
return;
}
- BMCWEB_LOG_DEBUG << "Dump Created. Path: " << objPath.str;
+ BMCWEB_LOG_DEBUG("Dump Created. Path: {}", objPath.str);
createDumpTaskCallback(std::move(payload), asyncResp, objPath);
},
"xyz.openbmc_project.Dump.Manager",
@@ -1029,7 +1028,7 @@ inline void clearDump(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
[asyncResp](const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_ERROR << "clearDump resp_handler got error " << ec;
+ BMCWEB_LOG_ERROR("clearDump resp_handler got error {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -1148,7 +1147,7 @@ inline void requestRoutesSystemLogServiceCollection(App& app)
subtreePath) {
if (ec)
{
- BMCWEB_LOG_ERROR << ec;
+ BMCWEB_LOG_ERROR("{}", ec);
return;
}
@@ -1252,7 +1251,7 @@ inline void requestRoutesJournalEventLogClear(App& app)
[asyncResp](const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_ERROR << "Failed to reload rsyslog: " << ec;
+ BMCWEB_LOG_ERROR("Failed to reload rsyslog: {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -1309,7 +1308,7 @@ static LogParseError
logEntryIter++;
if (message == nullptr)
{
- BMCWEB_LOG_WARNING << "Log entry not found in registry: " << logEntry;
+ BMCWEB_LOG_WARNING("Log entry not found in registry: {}", logEntry);
return LogParseError::messageIdNotInRegistry;
}
@@ -1584,8 +1583,8 @@ inline void requestRoutesDBusEventLogEntryCollection(App& app)
if (ec)
{
// TODO Handle for specific error code
- BMCWEB_LOG_ERROR
- << "getLogEntriesIfaceData resp_handler got error " << ec;
+ BMCWEB_LOG_ERROR(
+ "getLogEntriesIfaceData resp_handler got error {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -1781,8 +1780,8 @@ inline void requestRoutesDBusEventLogEntry(App& app)
}
if (ec)
{
- BMCWEB_LOG_ERROR
- << "EventLogEntry (DBus) resp_handler got error " << ec;
+ BMCWEB_LOG_ERROR(
+ "EventLogEntry (DBus) resp_handler got error {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -1883,7 +1882,7 @@ inline void requestRoutesDBusEventLogEntry(App& app)
{
return;
}
- BMCWEB_LOG_DEBUG << "Set Resolved";
+ BMCWEB_LOG_DEBUG("Set Resolved");
sdbusplus::asio::setProperty(
*crow::connections::systemBus, "xyz.openbmc_project.Logging",
@@ -1892,7 +1891,7 @@ inline void requestRoutesDBusEventLogEntry(App& app)
[asyncResp, entryId](const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS response error " << ec;
+ BMCWEB_LOG_DEBUG("DBUS response error {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -1924,7 +1923,7 @@ inline void requestRoutesDBusEventLogEntry(App& app)
systemName);
return;
}
- BMCWEB_LOG_DEBUG << "Do delete single event entries.";
+ BMCWEB_LOG_DEBUG("Do delete single event entries.");
std::string entryID = param;
@@ -1933,7 +1932,7 @@ inline void requestRoutesDBusEventLogEntry(App& app)
// Process response from Logging service.
auto respHandler =
[asyncResp, entryID](const boost::system::error_code& ec) {
- BMCWEB_LOG_DEBUG << "EventLogEntry (DBus) doDelete callback: Done";
+ BMCWEB_LOG_DEBUG("EventLogEntry (DBus) doDelete callback: Done");
if (ec)
{
if (ec.value() == EBADR)
@@ -1943,9 +1942,9 @@ inline void requestRoutesDBusEventLogEntry(App& app)
return;
}
// TODO Handle for specific error code
- BMCWEB_LOG_ERROR
- << "EventLogEntry (DBus) doDelete respHandler got error "
- << ec;
+ BMCWEB_LOG_ERROR(
+ "EventLogEntry (DBus) doDelete respHandler got error {}",
+ ec);
asyncResp->res.result(
boost::beast::http::status::internal_server_error);
return;
@@ -2011,7 +2010,7 @@ inline void requestRoutesDBusEventLogEntryDownload(App& app)
}
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS response error " << ec;
+ BMCWEB_LOG_DEBUG("DBUS response error {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -2035,8 +2034,8 @@ inline void requestRoutesDBusEventLogEntryDownload(App& app)
constexpr int maxFileSize = 65536;
if (size > maxFileSize)
{
- BMCWEB_LOG_ERROR << "File size exceeds maximum allowed size of "
- << maxFileSize;
+ BMCWEB_LOG_ERROR("File size exceeds maximum allowed size of {}",
+ maxFileSize);
messages::internalError(asyncResp->res);
return;
}
@@ -2080,7 +2079,7 @@ inline bool
std::filesystem::directory_iterator logPath(hostLoggerFilePath, ec);
if (ec)
{
- BMCWEB_LOG_ERROR << ec.message();
+ BMCWEB_LOG_ERROR("{}", ec.message());
return false;
}
for (const std::filesystem::directory_entry& it : logPath)
@@ -2113,7 +2112,7 @@ inline bool getHostLoggerEntries(
{
if (!logFile.gzGetLines(it.string(), skip, top, logEntries, logCount))
{
- BMCWEB_LOG_ERROR << "fail to expose host logs";
+ BMCWEB_LOG_ERROR("fail to expose host logs");
return false;
}
}
@@ -2230,7 +2229,7 @@ inline void requestRoutesSystemHostLoggerCollection(App& app)
std::vector<std::filesystem::path> hostLoggerFiles;
if (!getHostLoggerFiles(hostLoggerFolderPath, hostLoggerFiles))
{
- BMCWEB_LOG_ERROR << "fail to get host log file path";
+ BMCWEB_LOG_ERROR("fail to get host log file path");
return;
}
// If we weren't provided top and skip limits, use the defaults.
@@ -2316,7 +2315,7 @@ inline void requestRoutesSystemHostLoggerLogEntry(App& app)
std::vector<std::filesystem::path> hostLoggerFiles;
if (!getHostLoggerFiles(hostLoggerFolderPath, hostLoggerFiles))
{
- BMCWEB_LOG_ERROR << "fail to get host log file path";
+ BMCWEB_LOG_ERROR("fail to get host log file path");
return;
}
@@ -2384,9 +2383,9 @@ inline void handleBMCLogServicesCollectionGet(
const dbus::utility::MapperGetSubTreePathsResponse& subTreePaths) {
if (ec)
{
- BMCWEB_LOG_ERROR
- << "handleBMCLogServicesCollectionGet respHandler got error "
- << ec;
+ BMCWEB_LOG_ERROR(
+ "handleBMCLogServicesCollectionGet respHandler got error {}",
+ ec);
// Assume that getting an error simply means there are no dump
// LogServices. Return without adding any error response.
return;
@@ -2471,8 +2470,8 @@ static int
ret = getJournalMetadata(journal, "SYSLOG_IDENTIFIER", syslogID);
if (ret < 0)
{
- BMCWEB_LOG_ERROR << "Failed to read SYSLOG_IDENTIFIER field: "
- << strerror(-ret);
+ BMCWEB_LOG_ERROR("Failed to read SYSLOG_IDENTIFIER field: {}",
+ strerror(-ret));
}
if (!syslogID.empty())
{
@@ -2483,7 +2482,7 @@ static int
ret = getJournalMetadata(journal, "MESSAGE", msg);
if (ret < 0)
{
- BMCWEB_LOG_ERROR << "Failed to read MESSAGE field: " << strerror(-ret);
+ BMCWEB_LOG_ERROR("Failed to read MESSAGE field: {}", strerror(-ret));
return 1;
}
message += std::string(msg);
@@ -2493,7 +2492,7 @@ static int
ret = getJournalMetadata(journal, "PRIORITY", 10, severity);
if (ret < 0)
{
- BMCWEB_LOG_ERROR << "Failed to read PRIORITY field: " << strerror(-ret);
+ BMCWEB_LOG_ERROR("Failed to read PRIORITY field: {}", strerror(-ret));
}
// Get the Created time from the timestamp
@@ -2559,7 +2558,7 @@ inline void requestRoutesBMCJournalLogEntryCollection(App& app)
int ret = sd_journal_open(&journalTmp, SD_JOURNAL_LOCAL_ONLY);
if (ret < 0)
{
- BMCWEB_LOG_ERROR << "failed to open journal: " << strerror(-ret);
+ BMCWEB_LOG_ERROR("failed to open journal: {}", strerror(-ret));
messages::internalError(asyncResp->res);
return;
}
@@ -2630,7 +2629,7 @@ inline void requestRoutesBMCJournalLogEntry(App& app)
int ret = sd_journal_open(&journalTmp, SD_JOURNAL_LOCAL_ONLY);
if (ret < 0)
{
- BMCWEB_LOG_ERROR << "failed to open journal: " << strerror(-ret);
+ BMCWEB_LOG_ERROR("failed to open journal: {}", strerror(-ret));
messages::internalError(asyncResp->res);
return;
}
@@ -2644,8 +2643,8 @@ inline void requestRoutesBMCJournalLogEntry(App& app)
ret = sd_journal_seek_realtime_usec(journal.get(), ts);
if (ret < 0)
{
- BMCWEB_LOG_ERROR << "failed to seek to an entry in journal"
- << strerror(-ret);
+ BMCWEB_LOG_ERROR("failed to seek to an entry in journal{}",
+ strerror(-ret));
messages::internalError(asyncResp->res);
return;
}
@@ -2705,8 +2704,8 @@ inline void
}
else
{
- BMCWEB_LOG_ERROR << "getDumpServiceInfo() invalid dump type: "
- << dumpType;
+ BMCWEB_LOG_ERROR("getDumpServiceInfo() invalid dump type: {}",
+ dumpType);
messages::internalError(asyncResp->res);
return;
}
@@ -2741,8 +2740,7 @@ inline void
const dbus::utility::MapperGetSubTreePathsResponse& subTreePaths) {
if (ec)
{
- BMCWEB_LOG_ERROR << "getDumpServiceInfo respHandler got error "
- << ec;
+ BMCWEB_LOG_ERROR("getDumpServiceInfo respHandler got error {}", ec);
// Assume that getting an error simply means there are no dump
// LogServices. Return without adding any error response.
return;
@@ -3212,7 +3210,7 @@ static void
const dbus::utility::DBusPropertiesMap& params) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "failed to get log ec: " << ec.message();
+ BMCWEB_LOG_DEBUG("failed to get log ec: {}", ec.message());
if (ec.value() ==
boost::system::linux_error::bad_request_descriptor)
{
@@ -3317,8 +3315,8 @@ inline void requestRoutesCrashdumpEntryCollection(App& app)
if (ec.value() !=
boost::system::errc::no_such_file_or_directory)
{
- BMCWEB_LOG_DEBUG << "failed to get entries ec: "
- << ec.message();
+ BMCWEB_LOG_DEBUG("failed to get entries ec: {}",
+ ec.message());
messages::internalError(asyncResp->res);
return;
}
@@ -3424,7 +3422,7 @@ inline void requestRoutesCrashdumpFile(App& app)
resp) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "failed to get log ec: " << ec.message();
+ BMCWEB_LOG_DEBUG("failed to get log ec: {}", ec.message());
messages::internalError(asyncResp->res);
return;
}
@@ -3536,8 +3534,8 @@ inline void requestRoutesCrashdumpCollect(App& app)
if (diagnosticDataType != "OEM")
{
- BMCWEB_LOG_ERROR
- << "Only OEM DiagnosticDataType supported for Crashdump";
+ BMCWEB_LOG_ERROR(
+ "Only OEM DiagnosticDataType supported for Crashdump");
messages::actionParameterValueFormatError(
asyncResp->res, diagnosticDataType, "DiagnosticDataType",
"CollectDiagnosticData");
@@ -3570,8 +3568,8 @@ inline void requestRoutesCrashdumpCollect(App& app)
}
else
{
- BMCWEB_LOG_ERROR << "Unsupported OEMDiagnosticDataType: "
- << oemDiagnosticDataType;
+ BMCWEB_LOG_ERROR("Unsupported OEMDiagnosticDataType: {}",
+ oemDiagnosticDataType);
messages::actionParameterValueFormatError(
asyncResp->res, oemDiagnosticDataType, "OEMDiagnosticDataType",
"CollectDiagnosticData");
@@ -3660,15 +3658,15 @@ inline void requestRoutesDBusLogServiceActionsClear(App& app)
systemName);
return;
}
- BMCWEB_LOG_DEBUG << "Do delete all entries.";
+ BMCWEB_LOG_DEBUG("Do delete all entries.");
// Process response from Logging service.
auto respHandler = [asyncResp](const boost::system::error_code& ec) {
- BMCWEB_LOG_DEBUG << "doClearLog resp_handler callback: Done";
+ BMCWEB_LOG_DEBUG("doClearLog resp_handler callback: Done");
if (ec)
{
// TODO Handle for specific error code
- BMCWEB_LOG_ERROR << "doClearLog resp_handler got error " << ec;
+ BMCWEB_LOG_ERROR("doClearLog resp_handler got error {}", ec);
asyncResp->res.result(
boost::beast::http::status::internal_server_error);
return;
@@ -3766,7 +3764,7 @@ inline void requestRoutesPostCodesClear(App& app)
systemName);
return;
}
- BMCWEB_LOG_DEBUG << "Do delete all postcodes entries.";
+ BMCWEB_LOG_DEBUG("Do delete all postcodes entries.");
// Make call to post-code service to request clear all
crow::connections::systemBus->async_method_call(
@@ -3774,8 +3772,8 @@ inline void requestRoutesPostCodesClear(App& app)
if (ec)
{
// TODO Handle for specific error code
- BMCWEB_LOG_ERROR << "doClearPostCodes resp_handler got error "
- << ec;
+ BMCWEB_LOG_ERROR("doClearPostCodes resp_handler got error {}",
+ ec);
asyncResp->res.result(
boost::beast::http::status::internal_server_error);
messages::internalError(asyncResp->res);
@@ -3982,7 +3980,7 @@ static void
postcode) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS POST CODE PostCode response error";
+ BMCWEB_LOG_DEBUG("DBUS POST CODE PostCode response error");
messages::internalError(asyncResp->res);
return;
}
@@ -4018,7 +4016,7 @@ static void
postcode) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS POST CODE PostCode response error";
+ BMCWEB_LOG_DEBUG("DBUS POST CODE PostCode response error");
messages::internalError(asyncResp->res);
return;
}
@@ -4075,7 +4073,7 @@ static void
const uint16_t bootCount) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS response error " << ec;
+ BMCWEB_LOG_DEBUG("DBUS response error {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -4188,7 +4186,7 @@ inline void requestRoutesPostCodesEntryAdditionalData(App& app)
}
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS response error " << ec;
+ BMCWEB_LOG_DEBUG("DBUS response error {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -4196,7 +4194,7 @@ inline void requestRoutesPostCodesEntryAdditionalData(App& app)
size_t value = static_cast<size_t>(currentValue) - 1;
if (value == std::string::npos || postcodes.size() < currentValue)
{
- BMCWEB_LOG_WARNING << "Wrong currentValue value";
+ BMCWEB_LOG_WARNING("Wrong currentValue value");
messages::resourceNotFound(asyncResp->res, "LogEntry",
postCodeID);
return;
@@ -4205,7 +4203,7 @@ inline void requestRoutesPostCodesEntryAdditionalData(App& app)
const auto& [tID, c] = postcodes[value];
if (c.empty())
{
- BMCWEB_LOG_WARNING << "No found post code data";
+ BMCWEB_LOG_WARNING("No found post code data");
messages::resourceNotFound(asyncResp->res, "LogEntry",
postCodeID);
return;
diff --git a/redfish-core/lib/manager_diagnostic_data.hpp b/redfish-core/lib/manager_diagnostic_data.hpp
index ec742310c3..4dedc3fd3a 100644
--- a/redfish-core/lib/manager_diagnostic_data.hpp
+++ b/redfish-core/lib/manager_diagnostic_data.hpp
@@ -37,7 +37,7 @@ inline void afterGetManagerStartTime(
if (runTime < steady_clock::duration::zero())
{
- BMCWEB_LOG_CRITICAL << "Uptime was negative????";
+ BMCWEB_LOG_CRITICAL("Uptime was negative????");
messages::internalError(asyncResp->res);
return;
}
diff --git a/redfish-core/lib/managers.hpp b/redfish-core/lib/managers.hpp
index c97ba025e8..a114d44092 100644
--- a/redfish-core/lib/managers.hpp
+++ b/redfish-core/lib/managers.hpp
@@ -68,7 +68,7 @@ inline void
// Use "Set" method to set the property value.
if (ec)
{
- BMCWEB_LOG_DEBUG << "[Set] Bad D-Bus request error: " << ec;
+ BMCWEB_LOG_DEBUG("[Set] Bad D-Bus request error: {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -95,7 +95,7 @@ inline void
// Use "Set" method to set the property value.
if (ec)
{
- BMCWEB_LOG_DEBUG << "[Set] Bad D-Bus request error: " << ec;
+ BMCWEB_LOG_DEBUG("[Set] Bad D-Bus request error: {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -125,7 +125,7 @@ inline void requestRoutesManagerResetAction(App& app)
{
return;
}
- BMCWEB_LOG_DEBUG << "Post Manager Reset.";
+ BMCWEB_LOG_DEBUG("Post Manager Reset.");
std::string resetType;
@@ -137,18 +137,17 @@ inline void requestRoutesManagerResetAction(App& app)
if (resetType == "GracefulRestart")
{
- BMCWEB_LOG_DEBUG << "Proceeding with " << resetType;
+ BMCWEB_LOG_DEBUG("Proceeding with {}", resetType);
doBMCGracefulRestart(asyncResp);
return;
}
if (resetType == "ForceRestart")
{
- BMCWEB_LOG_DEBUG << "Proceeding with " << resetType;
+ BMCWEB_LOG_DEBUG("Proceeding with {}", resetType);
doBMCForceRestart(asyncResp);
return;
}
- BMCWEB_LOG_DEBUG << "Invalid property value for ResetType: "
- << resetType;
+ BMCWEB_LOG_DEBUG("Invalid property value for ResetType: {}", resetType);
messages::actionParameterNotSupported(asyncResp->res, resetType,
"ResetType");
@@ -184,14 +183,14 @@ inline void requestRoutesManagerResetToDefaultsAction(App& app)
{
return;
}
- BMCWEB_LOG_DEBUG << "Post ResetToDefaults.";
+ BMCWEB_LOG_DEBUG("Post ResetToDefaults.");
std::string resetType;
if (!json_util::readJsonAction(req, asyncResp->res,
"ResetToDefaultsType", resetType))
{
- BMCWEB_LOG_DEBUG << "Missing property ResetToDefaultsType.";
+ BMCWEB_LOG_DEBUG("Missing property ResetToDefaultsType.");
messages::actionParameterMissing(asyncResp->res, "ResetToDefaults",
"ResetToDefaultsType");
@@ -200,9 +199,9 @@ inline void requestRoutesManagerResetToDefaultsAction(App& app)
if (resetType != "ResetAll")
{
- BMCWEB_LOG_DEBUG
- << "Invalid property value for ResetToDefaultsType: "
- << resetType;
+ BMCWEB_LOG_DEBUG(
+ "Invalid property value for ResetToDefaultsType: {}",
+ resetType);
messages::actionParameterNotSupported(asyncResp->res, resetType,
"ResetToDefaultsType");
return;
@@ -212,7 +211,7 @@ inline void requestRoutesManagerResetToDefaultsAction(App& app)
[asyncResp](const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "Failed to ResetToDefaults: " << ec;
+ BMCWEB_LOG_DEBUG("Failed to ResetToDefaults: {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -294,7 +293,7 @@ inline void
const dbus::utility::ManagedObjectType& managedObj) {
if (ec)
{
- BMCWEB_LOG_ERROR << ec;
+ BMCWEB_LOG_ERROR("{}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -327,7 +326,7 @@ inline void
{
configRoot["Profile"] = currentProfile;
}
- BMCWEB_LOG_ERROR << "profile = " << currentProfile << " !";
+ BMCWEB_LOG_ERROR("profile = {} !", currentProfile);
for (const auto& pathPair : managedObj)
{
@@ -352,7 +351,7 @@ inline void
std::get_if<std::string>(&propPair.second);
if (namePtr == nullptr)
{
- BMCWEB_LOG_ERROR << "Pid Name Field illegal";
+ BMCWEB_LOG_ERROR("Pid Name Field illegal");
messages::internalError(asyncResp->res);
return;
}
@@ -366,15 +365,15 @@ inline void
&propPair.second);
if (profiles == nullptr)
{
- BMCWEB_LOG_ERROR << "Pid Profiles Field illegal";
+ BMCWEB_LOG_ERROR("Pid Profiles Field illegal");
messages::internalError(asyncResp->res);
return;
}
if (std::find(profiles->begin(), profiles->end(),
currentProfile) == profiles->end())
{
- BMCWEB_LOG_INFO
- << name << " not supported in current profile";
+ BMCWEB_LOG_INFO(
+ "{} not supported in current profile", name);
continue;
}
}
@@ -416,7 +415,7 @@ inline void
{
if (classPtr == nullptr)
{
- BMCWEB_LOG_ERROR << "Pid Class Field illegal";
+ BMCWEB_LOG_ERROR("Pid Class Field illegal");
messages::internalError(asyncResp->res);
return;
}
@@ -439,7 +438,7 @@ inline void
{
if (classPtr == nullptr)
{
- BMCWEB_LOG_ERROR << "Pid Class Field illegal";
+ BMCWEB_LOG_ERROR("Pid Class Field illegal");
messages::internalError(asyncResp->res);
return;
}
@@ -467,7 +466,7 @@ inline void
}
else
{
- BMCWEB_LOG_ERROR << "Unexpected configuration";
+ BMCWEB_LOG_ERROR("Unexpected configuration");
messages::internalError(asyncResp->res);
return;
}
@@ -492,8 +491,8 @@ inline void
std::get_if<double>(&propertyPair.second);
if (ptr == nullptr)
{
- BMCWEB_LOG_ERROR << "Field Illegal "
- << propertyPair.first;
+ BMCWEB_LOG_ERROR("Field Illegal {}",
+ propertyPair.first);
messages::internalError(asyncResp->res);
return;
}
@@ -511,8 +510,8 @@ inline void
if (ptr == nullptr)
{
- BMCWEB_LOG_ERROR << "Field Illegal "
- << propertyPair.first;
+ BMCWEB_LOG_ERROR("Field Illegal {}",
+ propertyPair.first);
messages::internalError(asyncResp->res);
return;
}
@@ -529,8 +528,8 @@ inline void
{
if (keys->size() != values->size())
{
- BMCWEB_LOG_ERROR
- << "Reading and Output size don't match ";
+ BMCWEB_LOG_ERROR(
+ "Reading and Output size don't match ");
messages::internalError(asyncResp->res);
return;
}
@@ -552,8 +551,8 @@ inline void
std::get_if<double>(&propertyPair.second);
if (ptr == nullptr)
{
- BMCWEB_LOG_ERROR << "Field Illegal "
- << propertyPair.first;
+ BMCWEB_LOG_ERROR("Field Illegal {}",
+ propertyPair.first);
messages::internalError(asyncResp->res);
return;
}
@@ -573,7 +572,7 @@ inline void
if (inputs == nullptr)
{
- BMCWEB_LOG_ERROR << "Zones Pid Field Illegal";
+ BMCWEB_LOG_ERROR("Zones Pid Field Illegal");
messages::internalError(asyncResp->res);
return;
}
@@ -609,8 +608,8 @@ inline void
if (inputs == nullptr)
{
- BMCWEB_LOG_ERROR << "Field Illegal "
- << propertyPair.first;
+ BMCWEB_LOG_ERROR("Field Illegal {}",
+ propertyPair.first);
messages::internalError(asyncResp->res);
return;
}
@@ -623,8 +622,8 @@ inline void
if (ptr == nullptr)
{
- BMCWEB_LOG_ERROR << "Field Illegal "
- << propertyPair.first;
+ BMCWEB_LOG_ERROR("Field Illegal {}",
+ propertyPair.first);
messages::internalError(asyncResp->res);
return;
}
@@ -651,7 +650,7 @@ inline void
}
else
{
- BMCWEB_LOG_ERROR << "Value Illegal " << *ptr;
+ BMCWEB_LOG_ERROR("Value Illegal {}", *ptr);
messages::internalError(asyncResp->res);
return;
}
@@ -675,8 +674,8 @@ inline void
std::get_if<double>(&propertyPair.second);
if (ptr == nullptr)
{
- BMCWEB_LOG_ERROR << "Field Illegal "
- << propertyPair.first;
+ BMCWEB_LOG_ERROR("Field Illegal {}",
+ propertyPair.first);
messages::internalError(asyncResp->res);
return;
}
@@ -703,7 +702,7 @@ inline bool
{
if (config.empty())
{
- BMCWEB_LOG_ERROR << "Empty Zones";
+ BMCWEB_LOG_ERROR("Empty Zones");
messages::propertyValueFormatError(response->res, config, "Zones");
return false;
}
@@ -722,8 +721,8 @@ inline bool
// 0 1 2 3 4 5 6 7 8
if (!dbus::utility::getNthStringFromPath(path, 8, input))
{
- BMCWEB_LOG_ERROR << "Got invalid path " << path;
- BMCWEB_LOG_ERROR << "Illegal Type Zones";
+ BMCWEB_LOG_ERROR("Got invalid path {}", path);
+ BMCWEB_LOG_ERROR("Illegal Type Zones");
messages::propertyValueFormatError(response->res, odata, "Zones");
return false;
}
@@ -737,7 +736,7 @@ inline const dbus::utility::ManagedObjectType::value_type*
findChassis(const dbus::utility::ManagedObjectType& managedObj,
const std::string& value, std::string& chassis)
{
- BMCWEB_LOG_DEBUG << "Find Chassis: " << value << "\n";
+ BMCWEB_LOG_DEBUG("Find Chassis: {}", value);
std::string escaped = value;
std::replace(escaped.begin(), escaped.end(), ' ', '_');
@@ -746,7 +745,7 @@ inline const dbus::utility::ManagedObjectType::value_type*
[&escaped](const auto& obj) {
if (boost::algorithm::ends_with(obj.first.str, escaped))
{
- BMCWEB_LOG_DEBUG << "Matched " << obj.first.str << "\n";
+ BMCWEB_LOG_DEBUG("Matched {}", obj.first.str);
return true;
}
return false;
@@ -791,18 +790,18 @@ inline CreatePIDRet createPidInterface(
}
else
{
- BMCWEB_LOG_ERROR << "Illegal Type " << type;
+ BMCWEB_LOG_ERROR("Illegal Type {}", type);
messages::propertyUnknown(response->res, type);
return CreatePIDRet::fail;
}
- BMCWEB_LOG_DEBUG << "del " << path << " " << iface << "\n";
+ BMCWEB_LOG_DEBUG("del {} {}", path, iface);
// delete interface
crow::connections::systemBus->async_method_call(
[response, path](const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_ERROR << "Error patching " << path << ": " << ec;
+ BMCWEB_LOG_ERROR("Error patching {}: {}", path, ec);
messages::internalError(response->res);
return;
}
@@ -820,7 +819,7 @@ inline CreatePIDRet createPidInterface(
managedItem = findChassis(managedObj, it.key(), chassis);
if (managedItem == nullptr)
{
- BMCWEB_LOG_ERROR << "Failed to get chassis from config patch";
+ BMCWEB_LOG_ERROR("Failed to get chassis from config patch");
messages::invalidObject(
response->res,
boost::urls::format("/redfish/v1/Chassis/{}", chassis));
@@ -862,8 +861,8 @@ inline CreatePIDRet createPidInterface(
&(prop.second));
if (curProfiles == nullptr)
{
- BMCWEB_LOG_ERROR
- << "Illegal profiles in managed object";
+ BMCWEB_LOG_ERROR(
+ "Illegal profiles in managed object");
messages::internalError(response->res);
return CreatePIDRet::fail;
}
@@ -883,8 +882,7 @@ inline CreatePIDRet createPidInterface(
if (!ifaceFound)
{
- BMCWEB_LOG_ERROR
- << "Failed to find interface in managed object";
+ BMCWEB_LOG_ERROR("Failed to find interface in managed object");
messages::internalError(response->res);
return CreatePIDRet::fail;
}
@@ -926,13 +924,13 @@ inline CreatePIDRet createPidInterface(
std::vector<std::string> zonesStr;
if (!getZonesFromJsonReq(response, *zones, zonesStr))
{
- BMCWEB_LOG_ERROR << "Illegal Zones";
+ BMCWEB_LOG_ERROR("Illegal Zones");
return CreatePIDRet::fail;
}
if (chassis.empty() &&
findChassis(managedObj, zonesStr[0], chassis) == nullptr)
{
- BMCWEB_LOG_ERROR << "Failed to get chassis from config patch";
+ BMCWEB_LOG_ERROR("Failed to get chassis from config patch");
messages::invalidObject(
response->res,
boost::urls::format("/redfish/v1/Chassis/{}", chassis));
@@ -980,8 +978,7 @@ inline CreatePIDRet createPidInterface(
}
else
{
- BMCWEB_LOG_ERROR << "Invalid setpointoffset "
- << *setpointOffset;
+ BMCWEB_LOG_ERROR("Invalid setpointoffset {}", *setpointOffset);
messages::propertyValueNotInList(response->res, it.key(),
"SetPointOffset");
return CreatePIDRet::fail;
@@ -995,7 +992,7 @@ inline CreatePIDRet createPidInterface(
{
continue;
}
- BMCWEB_LOG_DEBUG << pairs.first << " = " << *pairs.second;
+ BMCWEB_LOG_DEBUG("{} = {}", pairs.first, *pairs.second);
output.emplace_back(pairs.first, *pairs.second);
}
}
@@ -1027,7 +1024,7 @@ inline CreatePIDRet createPidInterface(
// /redfish/v1/chassis/chassis_name/
if (!dbus::utility::getNthStringFromPath(chassisId, 3, chassis))
{
- BMCWEB_LOG_ERROR << "Got invalid path " << chassisId;
+ BMCWEB_LOG_ERROR("Got invalid path {}", chassisId);
messages::invalidObject(
response->res,
boost::urls::format("/redfish/v1/Chassis/{}", chassisId));
@@ -1067,13 +1064,13 @@ inline CreatePIDRet createPidInterface(
std::vector<std::string> zonesStrs;
if (!getZonesFromJsonReq(response, *zones, zonesStrs))
{
- BMCWEB_LOG_ERROR << "Illegal Zones";
+ BMCWEB_LOG_ERROR("Illegal Zones");
return CreatePIDRet::fail;
}
if (chassis.empty() &&
findChassis(managedObj, zonesStrs[0], chassis) == nullptr)
{
- BMCWEB_LOG_ERROR << "Failed to get chassis from config patch";
+ BMCWEB_LOG_ERROR("Failed to get chassis from config patch");
messages::invalidObject(
response->res,
boost::urls::format("/redfish/v1/Chassis/{}", chassis));
@@ -1133,7 +1130,7 @@ inline CreatePIDRet createPidInterface(
}
else
{
- BMCWEB_LOG_ERROR << "Illegal Type " << type;
+ BMCWEB_LOG_ERROR("Illegal Type {}", type);
messages::propertyUnknown(response->res, type);
return CreatePIDRet::fail;
}
@@ -1169,7 +1166,7 @@ struct GetPIDValues : std::enable_shared_from_this<GetPIDValues>
const dbus::utility::MapperGetSubTreeResponse& subtreeLocal) {
if (ec)
{
- BMCWEB_LOG_ERROR << ec;
+ BMCWEB_LOG_ERROR("{}", ec);
messages::internalError(self->asyncResp->res);
return;
}
@@ -1191,7 +1188,7 @@ struct GetPIDValues : std::enable_shared_from_this<GetPIDValues>
if (subtreeLocal[0].second.size() != 1)
{
// invalid mapper response, should never happen
- BMCWEB_LOG_ERROR << "GetPIDValues: Mapper Error";
+ BMCWEB_LOG_ERROR("GetPIDValues: Mapper Error");
messages::internalError(self->asyncResp->res);
return;
}
@@ -1206,8 +1203,8 @@ struct GetPIDValues : std::enable_shared_from_this<GetPIDValues>
const dbus::utility::DBusPropertiesMap& resp) {
if (ec2)
{
- BMCWEB_LOG_ERROR
- << "GetPIDValues: Can't get thermalModeIface " << path;
+ BMCWEB_LOG_ERROR(
+ "GetPIDValues: Can't get thermalModeIface {}", path);
messages::internalError(self->asyncResp->res);
return;
}
@@ -1227,8 +1224,8 @@ struct GetPIDValues : std::enable_shared_from_this<GetPIDValues>
if (current == nullptr || supported == nullptr)
{
- BMCWEB_LOG_ERROR
- << "GetPIDValues: thermal mode iface invalid " << path;
+ BMCWEB_LOG_ERROR(
+ "GetPIDValues: thermal mode iface invalid {}", path);
messages::internalError(self->asyncResp->res);
return;
}
@@ -1280,8 +1277,8 @@ struct GetPIDValues : std::enable_shared_from_this<GetPIDValues>
objectMgrPaths.find(connectionGroup.first);
if (findObjMgr == objectMgrPaths.end())
{
- BMCWEB_LOG_DEBUG << connectionGroup.first
- << "Has no Object Manager";
+ BMCWEB_LOG_DEBUG("{}Has no Object Manager",
+ connectionGroup.first);
continue;
}
@@ -1363,7 +1360,7 @@ struct SetPIDValues : std::enable_shared_from_this<SetPIDValues>
const dbus::utility::ManagedObjectType& mObj) {
if (ec)
{
- BMCWEB_LOG_ERROR << "Error communicating to Entity Manager";
+ BMCWEB_LOG_ERROR("Error communicating to Entity Manager");
messages::internalError(self->asyncResp->res);
return;
}
@@ -1400,7 +1397,7 @@ struct SetPIDValues : std::enable_shared_from_this<SetPIDValues>
if (subtree[0].second.empty())
{
// invalid mapper response, should never happen
- BMCWEB_LOG_ERROR << "SetPIDValues: Mapper Error";
+ BMCWEB_LOG_ERROR("SetPIDValues: Mapper Error");
messages::internalError(self->asyncResp->res);
return;
}
@@ -1413,8 +1410,8 @@ struct SetPIDValues : std::enable_shared_from_this<SetPIDValues>
const dbus::utility::DBusPropertiesMap& r) {
if (ec2)
{
- BMCWEB_LOG_ERROR
- << "SetPIDValues: Can't get thermalModeIface " << path;
+ BMCWEB_LOG_ERROR(
+ "SetPIDValues: Can't get thermalModeIface {}", path);
messages::internalError(self->asyncResp->res);
return;
}
@@ -1433,8 +1430,8 @@ struct SetPIDValues : std::enable_shared_from_this<SetPIDValues>
if (current == nullptr || supported == nullptr)
{
- BMCWEB_LOG_ERROR
- << "SetPIDValues: thermal mode iface invalid " << path;
+ BMCWEB_LOG_ERROR(
+ "SetPIDValues: thermal mode iface invalid {}", path);
messages::internalError(self->asyncResp->res);
return;
}
@@ -1468,7 +1465,7 @@ struct SetPIDValues : std::enable_shared_from_this<SetPIDValues>
[response](const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_ERROR << "Error patching profile" << ec;
+ BMCWEB_LOG_ERROR("Error patching profile{}", ec);
messages::internalError(response->res);
}
});
@@ -1481,7 +1478,7 @@ struct SetPIDValues : std::enable_shared_from_this<SetPIDValues>
{
continue;
}
- BMCWEB_LOG_DEBUG << *container;
+ BMCWEB_LOG_DEBUG("{}", *container);
const std::string& type = containerPair.first;
@@ -1491,7 +1488,7 @@ struct SetPIDValues : std::enable_shared_from_this<SetPIDValues>
const auto& name = it.key();
std::string dbusObjName = name;
std::replace(dbusObjName.begin(), dbusObjName.end(), ' ', '_');
- BMCWEB_LOG_DEBUG << "looking for " << name;
+ BMCWEB_LOG_DEBUG("looking for {}", name);
auto pathItr = std::find_if(managedObj.begin(),
managedObj.end(),
@@ -1506,7 +1503,7 @@ struct SetPIDValues : std::enable_shared_from_this<SetPIDValues>
// determines if we're patching entity-manager or
// creating a new object
bool createNewObject = (pathItr == managedObj.end());
- BMCWEB_LOG_DEBUG << "Found = " << !createNewObject;
+ BMCWEB_LOG_DEBUG("Found = {}", !createNewObject);
std::string iface;
if (!createNewObject)
@@ -1565,7 +1562,7 @@ struct SetPIDValues : std::enable_shared_from_this<SetPIDValues>
path = pathItr->first.str;
}
- BMCWEB_LOG_DEBUG << "Create new = " << createNewObject << "\n";
+ BMCWEB_LOG_DEBUG("Create new = {}", createNewObject);
// arbitrary limit to avoid attacks
constexpr const size_t controllerLimit = 500;
@@ -1604,8 +1601,8 @@ struct SetPIDValues : std::enable_shared_from_this<SetPIDValues>
const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_ERROR << "Error patching "
- << propertyName << ": " << ec;
+ BMCWEB_LOG_ERROR("Error patching {}: {}",
+ propertyName, ec);
messages::internalError(response->res);
return;
}
@@ -1617,7 +1614,7 @@ struct SetPIDValues : std::enable_shared_from_this<SetPIDValues>
{
if (chassis.empty())
{
- BMCWEB_LOG_ERROR << "Failed to get chassis from config";
+ BMCWEB_LOG_ERROR("Failed to get chassis from config");
messages::internalError(response->res);
return;
}
@@ -1634,7 +1631,7 @@ struct SetPIDValues : std::enable_shared_from_this<SetPIDValues>
}
if (!foundChassis)
{
- BMCWEB_LOG_ERROR << "Failed to find chassis on dbus";
+ BMCWEB_LOG_ERROR("Failed to find chassis on dbus");
messages::resourceMissingAtURI(
response->res,
boost::urls::format("/redfish/v1/Chassis/{}",
@@ -1646,8 +1643,7 @@ struct SetPIDValues : std::enable_shared_from_this<SetPIDValues>
[response](const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_ERROR << "Error Adding Pid Object "
- << ec;
+ BMCWEB_LOG_ERROR("Error Adding Pid Object {}", ec);
messages::internalError(response->res);
return;
}
@@ -1668,7 +1664,7 @@ struct SetPIDValues : std::enable_shared_from_this<SetPIDValues>
}
catch (...)
{
- BMCWEB_LOG_CRITICAL << "pidSetDone threw exception";
+ BMCWEB_LOG_CRITICAL("pidSetDone threw exception");
}
}
@@ -1696,7 +1692,7 @@ inline void getLocation(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
const std::string& connectionName,
const std::string& path)
{
- BMCWEB_LOG_DEBUG << "Get BMC manager Location data.";
+ BMCWEB_LOG_DEBUG("Get BMC manager Location data.");
sdbusplus::asio::getProperty<std::string>(
*crow::connections::systemBus, connectionName, path,
@@ -1705,8 +1701,8 @@ inline void getLocation(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
const std::string& property) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS response error for "
- "Location";
+ BMCWEB_LOG_DEBUG("DBUS response error for "
+ "Location");
messages::internalError(asyncResp->res);
return;
}
@@ -1719,7 +1715,7 @@ inline void getLocation(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
inline void
managerGetLastResetTime(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
{
- BMCWEB_LOG_DEBUG << "Getting Manager Last Reset Time";
+ BMCWEB_LOG_DEBUG("Getting Manager Last Reset Time");
sdbusplus::asio::getProperty<uint64_t>(
*crow::connections::systemBus, "xyz.openbmc_project.State.BMC",
@@ -1729,7 +1725,7 @@ inline void
const uint64_t lastResetTime) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "D-BUS response error " << ec;
+ BMCWEB_LOG_DEBUG("D-BUS response error {}", ec);
return;
}
@@ -1761,7 +1757,7 @@ inline void
{
messages::propertyValueNotInList(asyncResp->res, runningFirmwareTarget,
"@odata.id");
- BMCWEB_LOG_DEBUG << "Can't parse firmware ID!";
+ BMCWEB_LOG_DEBUG("Can't parse firmware ID!");
return;
}
idPos++;
@@ -1769,7 +1765,7 @@ inline void
{
messages::propertyValueNotInList(asyncResp->res, runningFirmwareTarget,
"@odata.id");
- BMCWEB_LOG_DEBUG << "Invalid firmware ID.";
+ BMCWEB_LOG_DEBUG("Invalid firmware ID.");
return;
}
std::string firmwareId = runningFirmwareTarget.substr(idPos);
@@ -1783,14 +1779,14 @@ inline void
const dbus::utility::ManagedObjectType& subtree) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "D-Bus response error getting objects.";
+ BMCWEB_LOG_DEBUG("D-Bus response error getting objects.");
messages::internalError(asyncResp->res);
return;
}
if (subtree.empty())
{
- BMCWEB_LOG_DEBUG << "Can't find image!";
+ BMCWEB_LOG_DEBUG("Can't find image!");
messages::internalError(asyncResp->res);
return;
}
@@ -1824,12 +1820,12 @@ inline void
{
messages::propertyValueNotInList(
asyncResp->res, runningFirmwareTarget, "@odata.id");
- BMCWEB_LOG_DEBUG << "Invalid firmware ID.";
+ BMCWEB_LOG_DEBUG("Invalid firmware ID.");
return;
}
- BMCWEB_LOG_DEBUG << "Setting firmware version " << firmwareId
- << " to priority 0.";
+ BMCWEB_LOG_DEBUG("Setting firmware version {} to priority 0.",
+ firmwareId);
// Only support Immediate
// An addition could be a Redfish Setting like
@@ -1843,7 +1839,7 @@ inline void
[asyncResp](const boost::system::error_code& ec2) {
if (ec2)
{
- BMCWEB_LOG_DEBUG << "D-Bus response error setting.";
+ BMCWEB_LOG_DEBUG("D-Bus response error setting.");
messages::internalError(asyncResp->res);
return;
}
@@ -1855,7 +1851,7 @@ inline void
inline void setDateTime(std::shared_ptr<bmcweb::AsyncResp> asyncResp,
std::string datetime)
{
- BMCWEB_LOG_DEBUG << "Set date time: " << datetime;
+ BMCWEB_LOG_DEBUG("Set date time: {}", datetime);
std::optional<redfish::time_utils::usSinceEpoch> us =
redfish::time_utils::dateStringToEpoch(datetime);
@@ -1873,9 +1869,9 @@ inline void setDateTime(std::shared_ptr<bmcweb::AsyncResp> asyncResp,
datetime{std::move(datetime)}](const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "Failed to set elapsed time. "
- "DBUS response error "
- << ec;
+ BMCWEB_LOG_DEBUG("Failed to set elapsed time. "
+ "DBUS response error {}",
+ ec);
messages::internalError(asyncResp->res);
return;
}
@@ -2058,7 +2054,7 @@ inline void requestRoutesManager(App& app)
[asyncResp](const boost::system::error_code& ec, double val) {
if (ec)
{
- BMCWEB_LOG_ERROR << "Error while getting progress";
+ BMCWEB_LOG_ERROR("Error while getting progress");
messages::internalError(asyncResp->res);
return;
}
@@ -2080,26 +2076,26 @@ inline void requestRoutesManager(App& app)
const dbus::utility::MapperGetSubTreeResponse& subtree) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "D-Bus response error on GetSubTree " << ec;
+ BMCWEB_LOG_DEBUG("D-Bus response error on GetSubTree {}", ec);
return;
}
if (subtree.empty())
{
- BMCWEB_LOG_DEBUG << "Can't find bmc D-Bus object!";
+ BMCWEB_LOG_DEBUG("Can't find bmc D-Bus object!");
return;
}
// Assume only 1 bmc D-Bus object
// Throw an error if there is more than 1
if (subtree.size() > 1)
{
- BMCWEB_LOG_DEBUG << "Found more than 1 bmc D-Bus object!";
+ BMCWEB_LOG_DEBUG("Found more than 1 bmc D-Bus object!");
messages::internalError(asyncResp->res);
return;
}
if (subtree[0].first.empty() || subtree[0].second.size() != 1)
{
- BMCWEB_LOG_DEBUG << "Error getting bmc D-Bus object!";
+ BMCWEB_LOG_DEBUG("Error getting bmc D-Bus object!");
messages::internalError(asyncResp->res);
return;
}
@@ -2120,7 +2116,7 @@ inline void requestRoutesManager(App& app)
propertiesList) {
if (ec2)
{
- BMCWEB_LOG_DEBUG << "Can't get bmc asset!";
+ BMCWEB_LOG_DEBUG("Can't get bmc asset!");
return;
}
diff --git a/redfish-core/lib/memory.hpp b/redfish-core/lib/memory.hpp
index 54b4cca590..551a5790a1 100644
--- a/redfish-core/lib/memory.hpp
+++ b/redfish-core/lib/memory.hpp
@@ -614,7 +614,7 @@ inline void getDimmDataByService(std::shared_ptr<bmcweb::AsyncResp> asyncResp,
health->populate();
}
- BMCWEB_LOG_DEBUG << "Get available system components.";
+ BMCWEB_LOG_DEBUG("Get available system components.");
sdbusplus::asio::getAllProperties(
*crow::connections::systemBus, service, objPath, "",
[dimmId, asyncResp{std::move(asyncResp)}](
@@ -622,7 +622,7 @@ inline void getDimmDataByService(std::shared_ptr<bmcweb::AsyncResp> asyncResp,
const dbus::utility::DBusPropertiesMap& properties) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS response error";
+ BMCWEB_LOG_DEBUG("DBUS response error");
messages::internalError(asyncResp->res);
return;
}
@@ -695,7 +695,7 @@ inline void getDimmPartitionData(std::shared_ptr<bmcweb::AsyncResp> asyncResp,
const dbus::utility::DBusPropertiesMap& properties) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS response error";
+ BMCWEB_LOG_DEBUG("DBUS response error");
messages::internalError(asyncResp->res);
return;
@@ -710,7 +710,7 @@ inline void getDimmPartitionData(std::shared_ptr<bmcweb::AsyncResp> asyncResp,
inline void getDimmData(std::shared_ptr<bmcweb::AsyncResp> asyncResp,
const std::string& dimmId)
{
- BMCWEB_LOG_DEBUG << "Get available system dimm resources.";
+ BMCWEB_LOG_DEBUG("Get available system dimm resources.");
constexpr std::array<std::string_view, 2> dimmInterfaces = {
"xyz.openbmc_project.Inventory.Item.Dimm",
"xyz.openbmc_project.Inventory.Item.PersistentMemory.Partition"};
@@ -721,7 +721,7 @@ inline void getDimmData(std::shared_ptr<bmcweb::AsyncResp> asyncResp,
const dbus::utility::MapperGetSubTreeResponse& subtree) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS response error";
+ BMCWEB_LOG_DEBUG("DBUS response error");
messages::internalError(asyncResp->res);
return;
diff --git a/redfish-core/lib/metric_report.hpp b/redfish-core/lib/metric_report.hpp
index 6f26d8a52a..7543186bc1 100644
--- a/redfish-core/lib/metric_report.hpp
+++ b/redfish-core/lib/metric_report.hpp
@@ -108,7 +108,7 @@ inline void requestRoutesMetricReport(App& app)
}
if (ec)
{
- BMCWEB_LOG_ERROR << "respHandler DBus error " << ec;
+ BMCWEB_LOG_ERROR("respHandler DBus error {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -120,7 +120,7 @@ inline void requestRoutesMetricReport(App& app)
const telemetry::TimestampReadings& ret) {
if (ec2)
{
- BMCWEB_LOG_ERROR << "respHandler DBus error " << ec2;
+ BMCWEB_LOG_ERROR("respHandler DBus error {}", ec2);
messages::internalError(asyncResp->res);
return;
}
diff --git a/redfish-core/lib/metric_report_definition.hpp b/redfish-core/lib/metric_report_definition.hpp
index e245a99862..5daaeba2d2 100644
--- a/redfish-core/lib/metric_report_definition.hpp
+++ b/redfish-core/lib/metric_report_definition.hpp
@@ -191,16 +191,16 @@ inline std::optional<nlohmann::json::array_t> getLinkedTriggers(
if (path.parent_path() !=
"/xyz/openbmc_project/Telemetry/Triggers/TelemetryService")
{
- BMCWEB_LOG_ERROR << "Property Triggers contains invalid value: "
- << path.str;
+ BMCWEB_LOG_ERROR("Property Triggers contains invalid value: {}",
+ path.str);
return std::nullopt;
}
std::string id = path.filename();
if (id.empty())
{
- BMCWEB_LOG_ERROR << "Property Triggers contains invalid value: "
- << path.str;
+ BMCWEB_LOG_ERROR("Property Triggers contains invalid value: {}",
+ path.str);
return std::nullopt;
}
nlohmann::json::object_t trigger;
@@ -666,9 +666,9 @@ class AddReport
auto el = uriToDbus.find(uri);
if (el == uriToDbus.end())
{
- BMCWEB_LOG_ERROR
- << "Failed to find DBus sensor corresponding to URI "
- << uri;
+ BMCWEB_LOG_ERROR(
+ "Failed to find DBus sensor corresponding to URI {}",
+ uri);
messages::propertyValueNotInList(asyncResp->res, uri,
"MetricProperties/" +
std::to_string(i));
@@ -712,7 +712,7 @@ class AddReport
if (ec)
{
messages::internalError(asyncResp->res);
- BMCWEB_LOG_ERROR << "respHandler DBus error " << ec;
+ BMCWEB_LOG_ERROR("respHandler DBus error {}", ec);
return;
}
@@ -819,7 +819,7 @@ inline void
}
if (ec)
{
- BMCWEB_LOG_ERROR << "respHandler DBus error " << ec;
+ BMCWEB_LOG_ERROR("respHandler DBus error {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -855,7 +855,7 @@ inline void handleMetricReportDelete(
if (ec)
{
- BMCWEB_LOG_ERROR << "respHandler DBus error " << ec;
+ BMCWEB_LOG_ERROR("respHandler DBus error {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -913,9 +913,9 @@ inline void requestRoutesMetricReportDefinitionCollection(App& app)
const std::map<std::string, std::string>& uriToDbus) {
if (status != boost::beast::http::status::ok)
{
- BMCWEB_LOG_ERROR
- << "Failed to retrieve URI to dbus sensors map with err "
- << static_cast<unsigned>(status);
+ BMCWEB_LOG_ERROR(
+ "Failed to retrieve URI to dbus sensors map with err {}",
+ static_cast<unsigned>(status));
return;
}
addReportReq->insert(uriToDbus);
diff --git a/redfish-core/lib/network_protocol.hpp b/redfish-core/lib/network_protocol.hpp
index 29da308d84..83b6b66664 100644
--- a/redfish-core/lib/network_protocol.hpp
+++ b/redfish-core/lib/network_protocol.hpp
@@ -351,7 +351,7 @@ inline void
const dbus::utility::MapperGetSubTreeResponse& subtree) {
if (ec)
{
- BMCWEB_LOG_WARNING << "D-Bus error: " << ec << ", " << ec.message();
+ BMCWEB_LOG_WARNING("D-Bus error: {}, {}", ec, ec.message());
messages::internalError(asyncResp->res);
return;
}
diff --git a/redfish-core/lib/pcie.hpp b/redfish-core/lib/pcie.hpp
index e442c8e3ae..3831e184a6 100644
--- a/redfish-core/lib/pcie.hpp
+++ b/redfish-core/lib/pcie.hpp
@@ -62,7 +62,7 @@ static inline void handlePCIeDevicePath(
const dbus::utility::MapperGetObject& object) {
if (ec || object.empty())
{
- BMCWEB_LOG_ERROR << "DBUS response error " << ec;
+ BMCWEB_LOG_ERROR("DBUS response error {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -71,7 +71,7 @@ static inline void handlePCIeDevicePath(
return;
}
- BMCWEB_LOG_WARNING << "PCIe Device not found";
+ BMCWEB_LOG_WARNING("PCIe Device not found");
messages::resourceNotFound(asyncResp->res, "PCIeDevice", pcieDeviceId);
}
@@ -89,7 +89,7 @@ static inline void getValidPCIeDevicePath(
pcieDevicePaths) {
if (ec)
{
- BMCWEB_LOG_ERROR << "D-Bus response error on GetSubTree " << ec;
+ BMCWEB_LOG_ERROR("D-Bus response error on GetSubTree {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -154,8 +154,8 @@ inline void addPCIeSlotProperties(
{
if (ec)
{
- BMCWEB_LOG_ERROR << "DBUS response error for getAllProperties"
- << ec.value();
+ BMCWEB_LOG_ERROR("DBUS response error for getAllProperties{}",
+ ec.value());
messages::internalError(res);
return;
}
@@ -177,13 +177,13 @@ inline void addPCIeSlotProperties(
pcie_util::redfishPcieGenerationFromDbus(generation);
if (!pcieType)
{
- BMCWEB_LOG_WARNING << "Unknown PCIeType: " << generation;
+ BMCWEB_LOG_WARNING("Unknown PCIeType: {}", generation);
}
else
{
if (*pcieType == pcie_device::PCIeTypes::Invalid)
{
- BMCWEB_LOG_ERROR << "Invalid PCIeType: " << generation;
+ BMCWEB_LOG_ERROR("Invalid PCIeType: {}", generation);
messages::internalError(res);
return;
}
@@ -199,13 +199,13 @@ inline void addPCIeSlotProperties(
pcie_util::dbusSlotTypeToRf(slotType);
if (!redfishSlotType)
{
- BMCWEB_LOG_WARNING << "Unknown PCIeSlot Type: " << slotType;
+ BMCWEB_LOG_WARNING("Unknown PCIeSlot Type: {}", slotType);
}
else
{
if (*redfishSlotType == pcie_slots::SlotTypes::Invalid)
{
- BMCWEB_LOG_ERROR << "Invalid PCIeSlot type: " << slotType;
+ BMCWEB_LOG_ERROR("Invalid PCIeSlot type: {}", slotType);
messages::internalError(res);
return;
}
@@ -232,17 +232,17 @@ inline void getPCIeDeviceSlotPath(
// Missing association is not an error
return;
}
- BMCWEB_LOG_ERROR
- << "DBUS response error for getAssociatedSubTreePaths "
- << ec.value();
+ BMCWEB_LOG_ERROR(
+ "DBUS response error for getAssociatedSubTreePaths {}",
+ ec.value());
messages::internalError(asyncResp->res);
return;
}
if (endpoints.size() > 1)
{
- BMCWEB_LOG_ERROR
- << "PCIeDevice is associated with more than one PCIeSlot: "
- << endpoints.size();
+ BMCWEB_LOG_ERROR(
+ "PCIeDevice is associated with more than one PCIeSlot: {}",
+ endpoints.size());
messages::internalError(asyncResp->res);
return;
}
@@ -250,7 +250,7 @@ inline void getPCIeDeviceSlotPath(
{
// If the device doesn't have an association, return without PCIe
// Slot properties
- BMCWEB_LOG_DEBUG << "PCIeDevice is not associated with PCIeSlot";
+ BMCWEB_LOG_DEBUG("PCIeDevice is not associated with PCIeSlot");
return;
}
callback(endpoints[0]);
@@ -265,8 +265,8 @@ inline void
{
if (ec || object.empty())
{
- BMCWEB_LOG_ERROR << "DBUS response error for getDbusObject "
- << ec.value();
+ BMCWEB_LOG_ERROR("DBUS response error for getDbusObject {}",
+ ec.value());
messages::internalError(asyncResp->res);
return;
}
@@ -306,8 +306,8 @@ inline void
{
if (ec.value() != EBADR)
{
- BMCWEB_LOG_ERROR << "DBUS response error for Health "
- << ec.value();
+ BMCWEB_LOG_ERROR("DBUS response error for Health {}",
+ ec.value());
messages::internalError(asyncResp->res);
}
return;
@@ -333,7 +333,7 @@ inline void
{
if (ec.value() != EBADR)
{
- BMCWEB_LOG_ERROR << "DBUS response error for State";
+ BMCWEB_LOG_ERROR("DBUS response error for State");
messages::internalError(asyncResp->res);
}
return;
@@ -361,8 +361,8 @@ inline void
{
if (ec.value() != EBADR)
{
- BMCWEB_LOG_ERROR << "DBUS response error for Properties"
- << ec.value();
+ BMCWEB_LOG_ERROR("DBUS response error for Properties{}",
+ ec.value());
messages::internalError(asyncResp->res);
}
return;
@@ -439,15 +439,15 @@ inline void addPCIeDeviceProperties(
if (!redfishGenerationInUse)
{
- BMCWEB_LOG_WARNING << "Unknown PCIe Device Generation: "
- << *generationInUse;
+ BMCWEB_LOG_WARNING("Unknown PCIe Device Generation: {}",
+ *generationInUse);
}
else
{
if (*redfishGenerationInUse == pcie_device::PCIeTypes::Invalid)
{
- BMCWEB_LOG_ERROR << "Invalid PCIe Device Generation: "
- << *generationInUse;
+ BMCWEB_LOG_ERROR("Invalid PCIe Device Generation: {}",
+ *generationInUse);
messages::internalError(asyncResp->res);
return;
}
@@ -463,15 +463,15 @@ inline void addPCIeDeviceProperties(
if (!redfishGenerationSupported)
{
- BMCWEB_LOG_WARNING << "Unknown PCIe Device Generation: "
- << *generationSupported;
+ BMCWEB_LOG_WARNING("Unknown PCIe Device Generation: {}",
+ *generationSupported);
}
else
{
if (*redfishGenerationSupported == pcie_device::PCIeTypes::Invalid)
{
- BMCWEB_LOG_ERROR << "Invalid PCIe Device Generation: "
- << *generationSupported;
+ BMCWEB_LOG_ERROR("Invalid PCIe Device Generation: {}",
+ *generationSupported);
messages::internalError(asyncResp->res);
return;
}
@@ -515,7 +515,7 @@ inline void getPCIeDeviceProperties(
{
if (ec.value() != EBADR)
{
- BMCWEB_LOG_ERROR << "DBUS response error for Properties";
+ BMCWEB_LOG_ERROR("DBUS response error for Properties");
messages::internalError(asyncResp->res);
}
return;
diff --git a/redfish-core/lib/pcie_slots.hpp b/redfish-core/lib/pcie_slots.hpp
index 4412c41ed4..92ae576c9a 100644
--- a/redfish-core/lib/pcie_slots.hpp
+++ b/redfish-core/lib/pcie_slots.hpp
@@ -29,7 +29,7 @@ inline void
{
if (ec)
{
- BMCWEB_LOG_ERROR << "Can't get PCIeSlot properties!";
+ BMCWEB_LOG_ERROR("Can't get PCIeSlot properties!");
messages::internalError(asyncResp->res);
return;
}
@@ -40,7 +40,7 @@ inline void
slots.get_ptr<nlohmann::json::array_t*>();
if (slotsPtr == nullptr)
{
- BMCWEB_LOG_ERROR << "Slots key isn't an array???";
+ BMCWEB_LOG_ERROR("Slots key isn't an array???");
messages::internalError(asyncResp->res);
return;
}
@@ -69,8 +69,7 @@ inline void
pcie_util::redfishPcieGenerationFromDbus(*generation);
if (!pcieType)
{
- BMCWEB_LOG_WARNING << "Unknown PCIe Slot Generation: "
- << *generation;
+ BMCWEB_LOG_WARNING("Unknown PCIe Slot Generation: {}", *generation);
}
else
{
@@ -94,13 +93,13 @@ inline void
pcie_util::dbusSlotTypeToRf(*slotType);
if (!redfishSlotType)
{
- BMCWEB_LOG_WARNING << "Unknown PCIe Slot Type: " << *slotType;
+ BMCWEB_LOG_WARNING("Unknown PCIe Slot Type: {}", *slotType);
}
else
{
if (*redfishSlotType == pcie_slots::SlotTypes::Invalid)
{
- BMCWEB_LOG_ERROR << "Unknown PCIe Slot Type: " << *slotType;
+ BMCWEB_LOG_ERROR("Unknown PCIe Slot Type: {}", *slotType);
messages::internalError(asyncResp->res);
return;
}
@@ -129,14 +128,14 @@ inline void onMapperAssociationDone(
// This PCIeSlot have no chassis association.
return;
}
- BMCWEB_LOG_ERROR << "DBUS response error";
+ BMCWEB_LOG_ERROR("DBUS response error");
messages::internalError(asyncResp->res);
return;
}
if (pcieSlotChassis.size() != 1)
{
- BMCWEB_LOG_ERROR << "PCIe Slot association error! ";
+ BMCWEB_LOG_ERROR("PCIe Slot association error! ");
messages::internalError(asyncResp->res);
return;
}
@@ -166,7 +165,7 @@ inline void
{
if (ec)
{
- BMCWEB_LOG_ERROR << "D-Bus response error on GetSubTree " << ec;
+ BMCWEB_LOG_ERROR("D-Bus response error on GetSubTree {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -176,8 +175,8 @@ inline void
return;
}
- BMCWEB_LOG_DEBUG << "Get properties for PCIeSlots associated to chassis = "
- << chassisID;
+ BMCWEB_LOG_DEBUG("Get properties for PCIeSlots associated to chassis = {}",
+ chassisID);
asyncResp->res.jsonValue["@odata.type"] = "#PCIeSlots.v1_4_1.PCIeSlots";
asyncResp->res.jsonValue["Name"] = "PCIe Slot Information";
diff --git a/redfish-core/lib/power.hpp b/redfish-core/lib/power.hpp
index f9063b7dff..e7094ad05e 100644
--- a/redfish-core/lib/power.hpp
+++ b/redfish-core/lib/power.hpp
@@ -39,7 +39,7 @@ inline void setPowerCapOverride(
const std::optional<std::string>& chassisPath) mutable {
if (!chassisPath)
{
- BMCWEB_LOG_WARNING << "Don't find valid chassis path ";
+ BMCWEB_LOG_WARNING("Don't find valid chassis path ");
messages::resourceNotFound(sensorsAsyncResp->asyncResp->res,
"Chassis", sensorsAsyncResp->chassisId);
return;
@@ -47,7 +47,7 @@ inline void setPowerCapOverride(
if (powerControlCollections.size() != 1)
{
- BMCWEB_LOG_WARNING << "Don't support multiple hosts at present ";
+ BMCWEB_LOG_WARNING("Don't support multiple hosts at present ");
messages::resourceNotFound(sensorsAsyncResp->asyncResp->res,
"Power", "PowerControl");
return;
@@ -84,8 +84,8 @@ inline void setPowerCapOverride(
if (ec)
{
messages::internalError(sensorsAsyncResp->asyncResp->res);
- BMCWEB_LOG_ERROR << "powerCapEnable Get handler: Dbus error "
- << ec;
+ BMCWEB_LOG_ERROR("powerCapEnable Get handler: Dbus error {}",
+ ec);
return;
}
if (!powerCapEnable)
@@ -93,7 +93,7 @@ inline void setPowerCapOverride(
messages::actionNotSupported(
sensorsAsyncResp->asyncResp->res,
"Setting LimitInWatts when PowerLimit feature is disabled");
- BMCWEB_LOG_ERROR << "PowerLimit feature is disabled ";
+ BMCWEB_LOG_ERROR("PowerLimit feature is disabled ");
return;
}
@@ -104,7 +104,7 @@ inline void setPowerCapOverride(
[sensorsAsyncResp](const boost::system::error_code& ec2) {
if (ec2)
{
- BMCWEB_LOG_DEBUG << "Power Limit Set: Dbus error: " << ec2;
+ BMCWEB_LOG_DEBUG("Power Limit Set: Dbus error: {}", ec2);
messages::internalError(sensorsAsyncResp->asyncResp->res);
return;
}
@@ -148,8 +148,8 @@ inline void requestRoutesPower(App& app)
const Mapper& chassisPaths) {
if (ec2)
{
- BMCWEB_LOG_ERROR
- << "Power Limit GetSubTreePaths handler Dbus error " << ec2;
+ BMCWEB_LOG_ERROR(
+ "Power Limit GetSubTreePaths handler Dbus error {}", ec2);
return;
}
@@ -186,8 +186,8 @@ inline void requestRoutesPower(App& app)
if (!found)
{
- BMCWEB_LOG_DEBUG << "Power Limit not present for "
- << sensorAsyncResp->chassisId;
+ BMCWEB_LOG_DEBUG("Power Limit not present for {}",
+ sensorAsyncResp->chassisId);
return;
}
@@ -198,8 +198,8 @@ inline void requestRoutesPower(App& app)
if (ec)
{
messages::internalError(sensorAsyncResp->asyncResp->res);
- BMCWEB_LOG_ERROR
- << "Power Limit GetAll handler: Dbus error " << ec;
+ BMCWEB_LOG_ERROR(
+ "Power Limit GetAll handler: Dbus error {}", ec);
return;
}
diff --git a/redfish-core/lib/power_supply.hpp b/redfish-core/lib/power_supply.hpp
index 09f731b54e..0035b118f7 100644
--- a/redfish-core/lib/power_supply.hpp
+++ b/redfish-core/lib/power_supply.hpp
@@ -82,7 +82,7 @@ inline void
{
if (ec.value() != EBADR)
{
- BMCWEB_LOG_ERROR << "DBUS response error" << ec.value();
+ BMCWEB_LOG_ERROR("DBUS response error{}", ec.value());
messages::internalError(asyncResp->res);
}
return;
@@ -171,9 +171,9 @@ inline void getValidPowerSupplyPath(
{
if (ec.value() != EBADR)
{
- BMCWEB_LOG_ERROR
- << "DBUS response error for getAssociatedSubTreePaths"
- << ec.value();
+ BMCWEB_LOG_ERROR(
+ "DBUS response error for getAssociatedSubTreePaths{}",
+ ec.value());
messages::internalError(asyncResp->res);
return;
}
@@ -193,7 +193,7 @@ inline void getValidPowerSupplyPath(
if (!subtreePaths.empty())
{
- BMCWEB_LOG_WARNING << "Power supply not found: " << powerSupplyId;
+ BMCWEB_LOG_WARNING("Power supply not found: {}", powerSupplyId);
messages::resourceNotFound(asyncResp->res, "PowerSupplies",
powerSupplyId);
return;
@@ -213,8 +213,8 @@ inline void
{
if (ec.value() != EBADR)
{
- BMCWEB_LOG_ERROR << "DBUS response error for State "
- << ec.value();
+ BMCWEB_LOG_ERROR("DBUS response error for State {}",
+ ec.value());
messages::internalError(asyncResp->res);
}
return;
@@ -239,8 +239,8 @@ inline void
{
if (ec.value() != EBADR)
{
- BMCWEB_LOG_ERROR << "DBUS response error for Health "
- << ec.value();
+ BMCWEB_LOG_ERROR("DBUS response error for Health {}",
+ ec.value());
messages::internalError(asyncResp->res);
}
return;
@@ -266,8 +266,8 @@ inline void
{
if (ec.value() != EBADR)
{
- BMCWEB_LOG_ERROR << "DBUS response error for Asset "
- << ec.value();
+ BMCWEB_LOG_ERROR("DBUS response error for Asset {}",
+ ec.value());
messages::internalError(asyncResp->res);
}
return;
@@ -331,8 +331,8 @@ inline void getPowerSupplyFirmwareVersion(
{
if (ec.value() != EBADR)
{
- BMCWEB_LOG_ERROR << "DBUS response error for FirmwareVersion "
- << ec.value();
+ BMCWEB_LOG_ERROR("DBUS response error for FirmwareVersion {}",
+ ec.value());
messages::internalError(asyncResp->res);
}
return;
@@ -354,8 +354,8 @@ inline void
{
if (ec.value() != EBADR)
{
- BMCWEB_LOG_ERROR << "DBUS response error for Location "
- << ec.value();
+ BMCWEB_LOG_ERROR("DBUS response error for Location {}",
+ ec.value());
messages::internalError(asyncResp->res);
}
return;
@@ -373,8 +373,8 @@ inline void handleGetEfficiencyResponse(
{
if (ec.value() != EBADR)
{
- BMCWEB_LOG_ERROR << "DBUS response error for DeratingFactor "
- << ec.value();
+ BMCWEB_LOG_ERROR("DBUS response error for DeratingFactor {}",
+ ec.value());
messages::internalError(asyncResp->res);
}
return;
@@ -402,8 +402,8 @@ inline void handlePowerSupplyAttributesSubTreeResponse(
{
if (ec.value() != EBADR)
{
- BMCWEB_LOG_ERROR << "DBUS response error for EfficiencyPercent "
- << ec.value();
+ BMCWEB_LOG_ERROR("DBUS response error for EfficiencyPercent {}",
+ ec.value());
messages::internalError(asyncResp->res);
}
return;
@@ -411,15 +411,15 @@ inline void handlePowerSupplyAttributesSubTreeResponse(
if (subtree.empty())
{
- BMCWEB_LOG_DEBUG << "Can't find Power Supply Attributes!";
+ BMCWEB_LOG_DEBUG("Can't find Power Supply Attributes!");
return;
}
if (subtree.size() != 1)
{
- BMCWEB_LOG_ERROR
- << "Unexpected number of paths returned by getSubTree: "
- << subtree.size();
+ BMCWEB_LOG_ERROR(
+ "Unexpected number of paths returned by getSubTree: {}",
+ subtree.size());
messages::internalError(asyncResp->res);
return;
}
diff --git a/redfish-core/lib/processor.hpp b/redfish-core/lib/processor.hpp
index 8efa78e41a..873f882462 100644
--- a/redfish-core/lib/processor.hpp
+++ b/redfish-core/lib/processor.hpp
@@ -59,7 +59,7 @@ inline void getProcessorUUID(std::shared_ptr<bmcweb::AsyncResp> asyncResp,
const std::string& service,
const std::string& objPath)
{
- BMCWEB_LOG_DEBUG << "Get Processor UUID";
+ BMCWEB_LOG_DEBUG("Get Processor UUID");
sdbusplus::asio::getProperty<std::string>(
*crow::connections::systemBus, service, objPath,
"xyz.openbmc_project.Common.UUID", "UUID",
@@ -67,7 +67,7 @@ inline void getProcessorUUID(std::shared_ptr<bmcweb::AsyncResp> asyncResp,
const boost::system::error_code& ec, const std::string& property) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS response error";
+ BMCWEB_LOG_DEBUG("DBUS response error");
messages::internalError(asyncResp->res);
return;
}
@@ -79,7 +79,7 @@ inline void getCpuDataByInterface(
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
const dbus::utility::DBusInteracesMap& cpuInterfacesProperties)
{
- BMCWEB_LOG_DEBUG << "Get CPU resources by interface.";
+ BMCWEB_LOG_DEBUG("Get CPU resources by interface.");
// Set the default value of state
asyncResp->res.jsonValue["Status"]["State"] = "Enabled";
@@ -223,7 +223,7 @@ inline void getCpuDataByService(std::shared_ptr<bmcweb::AsyncResp> asyncResp,
const std::string& service,
const std::string& objPath)
{
- BMCWEB_LOG_DEBUG << "Get available system cpu resources by service.";
+ BMCWEB_LOG_DEBUG("Get available system cpu resources by service.");
sdbusplus::message::object_path path("/xyz/openbmc_project/inventory");
dbus::utility::getManagedObjects(
@@ -233,7 +233,7 @@ inline void getCpuDataByService(std::shared_ptr<bmcweb::AsyncResp> asyncResp,
const dbus::utility::ManagedObjectType& dbusData) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS response error";
+ BMCWEB_LOG_DEBUG("DBUS response error");
messages::internalError(asyncResp->res);
return;
}
@@ -339,7 +339,7 @@ inline void
{
if (ec)
{
- BMCWEB_LOG_ERROR << "Processor Throttle getAllProperties error " << ec;
+ BMCWEB_LOG_ERROR("Processor Throttle getAllProperties error {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -376,7 +376,7 @@ inline void
const std::string& service,
const std::string& objectPath)
{
- BMCWEB_LOG_DEBUG << "Get processor throttle resources";
+ BMCWEB_LOG_DEBUG("Get processor throttle resources");
sdbusplus::asio::getAllProperties(
*crow::connections::systemBus, service, objectPath,
@@ -391,7 +391,7 @@ inline void getCpuAssetData(std::shared_ptr<bmcweb::AsyncResp> asyncResp,
const std::string& service,
const std::string& objPath)
{
- BMCWEB_LOG_DEBUG << "Get Cpu Asset Data";
+ BMCWEB_LOG_DEBUG("Get Cpu Asset Data");
sdbusplus::asio::getAllProperties(
*crow::connections::systemBus, service, objPath,
"xyz.openbmc_project.Inventory.Decorator.Asset",
@@ -400,7 +400,7 @@ inline void getCpuAssetData(std::shared_ptr<bmcweb::AsyncResp> asyncResp,
const dbus::utility::DBusPropertiesMap& properties) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS response error";
+ BMCWEB_LOG_DEBUG("DBUS response error");
messages::internalError(asyncResp->res);
return;
}
@@ -465,7 +465,7 @@ inline void getCpuRevisionData(std::shared_ptr<bmcweb::AsyncResp> asyncResp,
const std::string& service,
const std::string& objPath)
{
- BMCWEB_LOG_DEBUG << "Get Cpu Revision Data";
+ BMCWEB_LOG_DEBUG("Get Cpu Revision Data");
sdbusplus::asio::getAllProperties(
*crow::connections::systemBus, service, objPath,
"xyz.openbmc_project.Inventory.Decorator.Revision",
@@ -474,7 +474,7 @@ inline void getCpuRevisionData(std::shared_ptr<bmcweb::AsyncResp> asyncResp,
const dbus::utility::DBusPropertiesMap& properties) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS response error";
+ BMCWEB_LOG_DEBUG("DBUS response error");
messages::internalError(asyncResp->res);
return;
}
@@ -501,8 +501,7 @@ inline void getAcceleratorDataByService(
std::shared_ptr<bmcweb::AsyncResp> asyncResp, const std::string& acclrtrId,
const std::string& service, const std::string& objPath)
{
- BMCWEB_LOG_DEBUG
- << "Get available system Accelerator resources by service.";
+ BMCWEB_LOG_DEBUG("Get available system Accelerator resources by service.");
sdbusplus::asio::getAllProperties(
*crow::connections::systemBus, service, objPath, "",
[acclrtrId, asyncResp{std::move(asyncResp)}](
@@ -510,7 +509,7 @@ inline void getAcceleratorDataByService(
const dbus::utility::DBusPropertiesMap& properties) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS response error";
+ BMCWEB_LOG_DEBUG("DBUS response error");
messages::internalError(asyncResp->res);
return;
}
@@ -613,7 +612,7 @@ inline void
const std::string& cpuId, const std::string& service,
const std::string& objPath)
{
- BMCWEB_LOG_INFO << "Getting CPU operating configs for " << cpuId;
+ BMCWEB_LOG_INFO("Getting CPU operating configs for {}", cpuId);
// First, GetAll CurrentOperatingConfig properties on the object
sdbusplus::asio::getAllProperties(
@@ -624,7 +623,7 @@ inline void
const dbus::utility::DBusPropertiesMap& properties) {
if (ec)
{
- BMCWEB_LOG_WARNING << "D-Bus error: " << ec << ", " << ec.message();
+ BMCWEB_LOG_WARNING("D-Bus error: {}, {}", ec, ec.message());
messages::internalError(asyncResp->res);
return;
}
@@ -685,7 +684,7 @@ inline void
const BaseSpeedPrioritySettingsProperty& baseSpeedList) {
if (ec2)
{
- BMCWEB_LOG_WARNING << "D-Bus Property Get error: " << ec2;
+ BMCWEB_LOG_WARNING("D-Bus Property Get error: {}", ec2);
messages::internalError(asyncResp->res);
return;
}
@@ -714,7 +713,7 @@ inline void getCpuLocationCode(std::shared_ptr<bmcweb::AsyncResp> asyncResp,
const std::string& service,
const std::string& objPath)
{
- BMCWEB_LOG_DEBUG << "Get Cpu Location Data";
+ BMCWEB_LOG_DEBUG("Get Cpu Location Data");
sdbusplus::asio::getProperty<std::string>(
*crow::connections::systemBus, service, objPath,
"xyz.openbmc_project.Inventory.Decorator.LocationCode", "LocationCode",
@@ -722,7 +721,7 @@ inline void getCpuLocationCode(std::shared_ptr<bmcweb::AsyncResp> asyncResp,
const boost::system::error_code& ec, const std::string& property) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS response error";
+ BMCWEB_LOG_DEBUG("DBUS response error");
messages::internalError(asyncResp->res);
return;
}
@@ -744,7 +743,7 @@ inline void getCpuUniqueId(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
const std::string& service,
const std::string& objectPath)
{
- BMCWEB_LOG_DEBUG << "Get CPU UniqueIdentifier";
+ BMCWEB_LOG_DEBUG("Get CPU UniqueIdentifier");
sdbusplus::asio::getProperty<std::string>(
*crow::connections::systemBus, service, objectPath,
"xyz.openbmc_project.Inventory.Decorator.UniqueIdentifier",
@@ -753,7 +752,7 @@ inline void getCpuUniqueId(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
const std::string& id) {
if (ec)
{
- BMCWEB_LOG_ERROR << "Failed to read cpu unique id: " << ec;
+ BMCWEB_LOG_ERROR("Failed to read cpu unique id: {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -777,7 +776,7 @@ inline void getProcessorObject(const std::shared_ptr<bmcweb::AsyncResp>& resp,
const std::string& processorId,
Handler&& handler)
{
- BMCWEB_LOG_DEBUG << "Get available system processor resources.";
+ BMCWEB_LOG_DEBUG("Get available system processor resources.");
// GetSubTree on all interfaces which provide info about a Processor
constexpr std::array<std::string_view, 9> interfaces = {
@@ -797,7 +796,7 @@ inline void getProcessorObject(const std::shared_ptr<bmcweb::AsyncResp>& resp,
const dbus::utility::MapperGetSubTreeResponse& subtree) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS response error: " << ec;
+ BMCWEB_LOG_DEBUG("DBUS response error: {}", ec);
messages::internalError(resp->res);
return;
}
@@ -921,7 +920,7 @@ inline void
const dbus::utility::DBusPropertiesMap& properties) {
if (ec)
{
- BMCWEB_LOG_WARNING << "D-Bus error: " << ec << ", " << ec.message();
+ BMCWEB_LOG_WARNING("D-Bus error: {}, {}", ec, ec.message());
messages::internalError(asyncResp->res);
return;
}
@@ -1022,11 +1021,11 @@ inline void
{
if (!ec)
{
- BMCWEB_LOG_DEBUG << "Set Property succeeded";
+ BMCWEB_LOG_DEBUG("Set Property succeeded");
return;
}
- BMCWEB_LOG_DEBUG << "Set Property failed: " << ec;
+ BMCWEB_LOG_DEBUG("Set Property failed: {}", ec);
const sd_bus_error* dbusError = msg.get_error();
if (dbusError == nullptr)
@@ -1119,7 +1118,7 @@ inline void patchAppliedOperatingConfig(
sdbusplus::message::object_path configPath(cpuObjectPath);
configPath /= configBaseName;
- BMCWEB_LOG_INFO << "Setting config to " << configPath.str;
+ BMCWEB_LOG_INFO("Setting config to {}", configPath.str);
// Set the property, with handler to check error responses
sdbusplus::asio::setProperty(
@@ -1207,8 +1206,7 @@ inline void requestRoutesOperatingConfigCollection(App& app)
const dbus::utility::MapperGetSubTreePathsResponse& objects) {
if (ec)
{
- BMCWEB_LOG_WARNING << "D-Bus error: " << ec << ", "
- << ec.message();
+ BMCWEB_LOG_WARNING("D-Bus error: {}, {}", ec, ec.message());
messages::internalError(asyncResp->res);
return;
}
@@ -1281,8 +1279,7 @@ inline void requestRoutesOperatingConfig(App& app)
const dbus::utility::MapperGetSubTreeResponse& subtree) {
if (ec)
{
- BMCWEB_LOG_WARNING << "D-Bus error: " << ec << ", "
- << ec.message();
+ BMCWEB_LOG_WARNING("D-Bus error: {}, {}", ec, ec.message());
messages::internalError(asyncResp->res);
return;
}
diff --git a/redfish-core/lib/redfish_util.hpp b/redfish-core/lib/redfish_util.hpp
index f5c68d19bd..fad410d155 100644
--- a/redfish-core/lib/redfish_util.hpp
+++ b/redfish-core/lib/redfish_util.hpp
@@ -73,12 +73,12 @@ void getMainChassisId(std::shared_ptr<bmcweb::AsyncResp> asyncResp,
const dbus::utility::MapperGetSubTreeResponse& subtree) {
if (ec)
{
- BMCWEB_LOG_ERROR << ec;
+ BMCWEB_LOG_ERROR("{}", ec);
return;
}
if (subtree.empty())
{
- BMCWEB_LOG_DEBUG << "Can't find chassis!";
+ BMCWEB_LOG_DEBUG("Can't find chassis!");
return;
}
@@ -87,11 +87,11 @@ void getMainChassisId(std::shared_ptr<bmcweb::AsyncResp> asyncResp,
(idPos + 1) >= subtree[0].first.size())
{
messages::internalError(asyncResp->res);
- BMCWEB_LOG_DEBUG << "Can't parse chassis ID!";
+ BMCWEB_LOG_DEBUG("Can't parse chassis ID!");
return;
}
std::string chassisId = subtree[0].first.substr(idPos + 1);
- BMCWEB_LOG_DEBUG << "chassisId = " << chassisId;
+ BMCWEB_LOG_DEBUG("chassisId = {}", chassisId);
callback(chassisId, asyncResp);
});
}
@@ -109,7 +109,7 @@ void getPortStatusAndPath(
std::vector<std::tuple<std::string, std::string, bool>> socketData;
if (ec)
{
- BMCWEB_LOG_ERROR << ec;
+ BMCWEB_LOG_ERROR("{}", ec);
// return error code
callback(ec, socketData);
return;
@@ -181,10 +181,9 @@ void getPortStatusAndPath(
{
// Already registered as enabled or current one is not
// enabled, nothing to do
- BMCWEB_LOG_DEBUG
- << "protocolName: " << kv.first
- << ", already true or current one is false: "
- << isProtocolEnabled;
+ BMCWEB_LOG_DEBUG(
+ "protocolName: {}, already true or current one is false: {}",
+ kv.first, isProtocolEnabled);
break;
}
// Remove existing entry and replace with new one (below)
@@ -216,7 +215,7 @@ void getPortNumber(const std::string& socketPath, CallbackFunc&& callback)
const std::vector<std::tuple<std::string, std::string>>& resp) {
if (ec)
{
- BMCWEB_LOG_ERROR << ec;
+ BMCWEB_LOG_ERROR("{}", ec);
callback(ec, 0);
return;
}
@@ -228,7 +227,7 @@ void getPortNumber(const std::string& socketPath, CallbackFunc&& callback)
boost::system::errc::bad_message);
// return error code
callback(ec1, 0);
- BMCWEB_LOG_ERROR << ec1;
+ BMCWEB_LOG_ERROR("{}", ec1);
return;
}
const std::string& listenStream =
@@ -250,7 +249,7 @@ void getPortNumber(const std::string& socketPath, CallbackFunc&& callback)
}
// return error code
callback(ec3, 0);
- BMCWEB_LOG_ERROR << ec3;
+ BMCWEB_LOG_ERROR("{}", ec3);
}
callback(ec, port);
});
diff --git a/redfish-core/lib/redfish_v1.hpp b/redfish-core/lib/redfish_v1.hpp
index b7a1f4cb21..a591763f57 100644
--- a/redfish-core/lib/redfish_v1.hpp
+++ b/redfish-core/lib/redfish_v1.hpp
@@ -39,7 +39,7 @@ inline void redfish404(App& app, const crow::Request& req,
return;
}
- BMCWEB_LOG_WARNING << "404 on path " << path;
+ BMCWEB_LOG_WARNING("404 on path {}", path);
std::string name = req.url().segments().back();
// Note, if we hit the wildcard route, we don't know the "type" the user was
@@ -59,7 +59,7 @@ inline void redfish405(App& app, const crow::Request& req,
return;
}
- BMCWEB_LOG_WARNING << "405 on path " << path;
+ BMCWEB_LOG_WARNING("405 on path {}", path);
asyncResp->res.result(boost::beast::http::status::method_not_allowed);
if (req.method() == boost::beast::http::verb::delete_)
{
diff --git a/redfish-core/lib/sensors.hpp b/redfish-core/lib/sensors.hpp
index 1fec8680c0..4969c8fe22 100644
--- a/redfish-core/lib/sensors.hpp
+++ b/redfish-core/lib/sensors.hpp
@@ -324,7 +324,7 @@ class InventoryItem
name = path.filename();
if (name.empty())
{
- BMCWEB_LOG_ERROR << "Failed to find '/' in " << objectPath;
+ BMCWEB_LOG_ERROR("Failed to find '/' in {}", objectPath);
}
}
@@ -355,7 +355,7 @@ void getObjectsWithConnection(
const std::shared_ptr<std::set<std::string>>& sensorNames,
Callback&& callback)
{
- BMCWEB_LOG_DEBUG << "getObjectsWithConnection enter";
+ BMCWEB_LOG_DEBUG("getObjectsWithConnection enter");
const std::string path = "/xyz/openbmc_project/sensors";
constexpr std::array<std::string_view, 1> interfaces = {
"xyz.openbmc_project.Sensor.Value"};
@@ -367,26 +367,26 @@ void getObjectsWithConnection(
sensorNames](const boost::system::error_code& ec,
const dbus::utility::MapperGetSubTreeResponse& subtree) {
// Response handler for parsing objects subtree
- BMCWEB_LOG_DEBUG << "getObjectsWithConnection resp_handler enter";
+ BMCWEB_LOG_DEBUG("getObjectsWithConnection resp_handler enter");
if (ec)
{
messages::internalError(sensorsAsyncResp->asyncResp->res);
- BMCWEB_LOG_ERROR
- << "getObjectsWithConnection resp_handler: Dbus error " << ec;
+ BMCWEB_LOG_ERROR(
+ "getObjectsWithConnection resp_handler: Dbus error {}", ec);
return;
}
- BMCWEB_LOG_DEBUG << "Found " << subtree.size() << " subtrees";
+ BMCWEB_LOG_DEBUG("Found {} subtrees", subtree.size());
// Make unique list of connections only for requested sensor types and
// found in the chassis
std::set<std::string> connections;
std::set<std::pair<std::string, std::string>> objectsWithConnection;
- BMCWEB_LOG_DEBUG << "sensorNames list count: " << sensorNames->size();
+ BMCWEB_LOG_DEBUG("sensorNames list count: {}", sensorNames->size());
for (const std::string& tsensor : *sensorNames)
{
- BMCWEB_LOG_DEBUG << "Sensor to find: " << tsensor;
+ BMCWEB_LOG_DEBUG("Sensor to find: {}", tsensor);
}
for (const std::pair<
@@ -399,18 +399,18 @@ void getObjectsWithConnection(
for (const std::pair<std::string, std::vector<std::string>>&
objData : object.second)
{
- BMCWEB_LOG_DEBUG << "Adding connection: " << objData.first;
+ BMCWEB_LOG_DEBUG("Adding connection: {}", objData.first);
connections.insert(objData.first);
objectsWithConnection.insert(
std::make_pair(object.first, objData.first));
}
}
}
- BMCWEB_LOG_DEBUG << "Found " << connections.size() << " connections";
+ BMCWEB_LOG_DEBUG("Found {} connections", connections.size());
callback(std::move(connections), std::move(objectsWithConnection));
- BMCWEB_LOG_DEBUG << "getObjectsWithConnection resp_handler exit";
+ BMCWEB_LOG_DEBUG("getObjectsWithConnection resp_handler exit");
});
- BMCWEB_LOG_DEBUG << "getObjectsWithConnection exit";
+ BMCWEB_LOG_DEBUG("getObjectsWithConnection exit");
}
/**
@@ -518,7 +518,7 @@ void getChassis(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
std::span<const std::string_view> sensorTypes,
Callback&& callback)
{
- BMCWEB_LOG_DEBUG << "getChassis enter";
+ BMCWEB_LOG_DEBUG("getChassis enter");
constexpr std::array<std::string_view, 2> interfaces = {
"xyz.openbmc_project.Inventory.Item.Board",
"xyz.openbmc_project.Inventory.Item.Chassis"};
@@ -531,10 +531,10 @@ void getChassis(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
chassisSubNode{std::string(chassisSubNode)}, sensorTypes](
const boost::system::error_code& ec,
const dbus::utility::MapperGetSubTreePathsResponse& chassisPaths) {
- BMCWEB_LOG_DEBUG << "getChassis respHandler enter";
+ BMCWEB_LOG_DEBUG("getChassis respHandler enter");
if (ec)
{
- BMCWEB_LOG_ERROR << "getChassis respHandler DBUS error: " << ec;
+ BMCWEB_LOG_ERROR("getChassis respHandler DBUS error: {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -545,7 +545,7 @@ void getChassis(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
std::string chassisName = path.filename();
if (chassisName.empty())
{
- BMCWEB_LOG_ERROR << "Failed to find '/' in " << chassis;
+ BMCWEB_LOG_ERROR("Failed to find '/' in {}", chassis);
continue;
}
if (chassisName == chassisIdStr)
@@ -584,11 +584,11 @@ void getChassis(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
std::make_shared<std::set<std::string>>();
reduceSensorList(asyncResp->res, chassisSubNode, sensorTypes,
&nodeSensorList, culledSensorList);
- BMCWEB_LOG_DEBUG << "Finishing with " << culledSensorList->size();
+ BMCWEB_LOG_DEBUG("Finishing with {}", culledSensorList->size());
callback(culledSensorList);
});
});
- BMCWEB_LOG_DEBUG << "getChassis exit";
+ BMCWEB_LOG_DEBUG("getChassis exit");
}
/**
@@ -774,8 +774,8 @@ inline void objectPropertiesToJson(
sensor::ReadingType readingType = sensors::toReadingType(sensorType);
if (readingType == sensor::ReadingType::Invalid)
{
- BMCWEB_LOG_ERROR << "Redfish cannot map reading type for "
- << sensorType;
+ BMCWEB_LOG_ERROR("Redfish cannot map reading type for {}",
+ sensorType);
}
else
{
@@ -785,8 +785,8 @@ inline void objectPropertiesToJson(
std::string_view readingUnits = sensors::toReadingUnits(sensorType);
if (readingUnits.empty())
{
- BMCWEB_LOG_ERROR << "Redfish cannot map reading unit for "
- << sensorType;
+ BMCWEB_LOG_ERROR("Redfish cannot map reading unit for {}",
+ sensorType);
}
else
{
@@ -843,7 +843,7 @@ inline void objectPropertiesToJson(
}
else
{
- BMCWEB_LOG_ERROR << "Redfish cannot map object type for " << sensorName;
+ BMCWEB_LOG_ERROR("Redfish cannot map object type for {}", sensorName);
return;
}
// Map of dbus interface name, dbus property name and redfish property_name
@@ -928,7 +928,7 @@ inline void objectPropertiesToJson(
const double* doubleValue = std::get_if<double>(&valueVariant);
if (doubleValue == nullptr)
{
- BMCWEB_LOG_ERROR << "Got value interface that wasn't double";
+ BMCWEB_LOG_ERROR("Got value interface that wasn't double");
continue;
}
if (!std::isfinite(*doubleValue))
@@ -940,8 +940,8 @@ inline void objectPropertiesToJson(
sensorJson[key] = nullptr;
continue;
}
- BMCWEB_LOG_WARNING << "Sensor value for " << valueName
- << " was unexpectedly " << *doubleValue;
+ BMCWEB_LOG_WARNING("Sensor value for {} was unexpectedly {}",
+ valueName, *doubleValue);
continue;
}
if (forceToInt)
@@ -979,7 +979,7 @@ inline void objectInterfacesToJson(
objectPropertiesToJson(sensorName, sensorType, chassisSubNode,
valuesDict, sensorJson, inventoryItem);
}
- BMCWEB_LOG_DEBUG << "Added sensor " << sensorName;
+ BMCWEB_LOG_DEBUG("Added sensor {}", sensorName);
}
inline void populateFanRedundancy(
@@ -1059,7 +1059,7 @@ inline void populateFanRedundancy(
if (allowedFailures == nullptr || collection == nullptr ||
status == nullptr)
{
- BMCWEB_LOG_ERROR << "Invalid redundancy interface";
+ BMCWEB_LOG_ERROR("Invalid redundancy interface");
messages::internalError(
sensorsAsyncResp->asyncResp->res);
return;
@@ -1120,7 +1120,7 @@ inline void populateFanRedundancy(
}
else
{
- BMCWEB_LOG_ERROR << "failed to find fan in schema";
+ BMCWEB_LOG_ERROR("failed to find fan in schema");
messages::internalError(
sensorsAsyncResp->asyncResp->res);
return;
@@ -1432,13 +1432,13 @@ static void getInventoryItemsData(
std::shared_ptr<std::set<std::string>> invConnections, Callback&& callback,
size_t invConnectionsIndex = 0)
{
- BMCWEB_LOG_DEBUG << "getInventoryItemsData enter";
+ BMCWEB_LOG_DEBUG("getInventoryItemsData enter");
// If no more connections left, call callback
if (invConnectionsIndex >= invConnections->size())
{
callback();
- BMCWEB_LOG_DEBUG << "getInventoryItemsData exit";
+ BMCWEB_LOG_DEBUG("getInventoryItemsData exit");
return;
}
@@ -1457,11 +1457,11 @@ static void getInventoryItemsData(
callback{std::forward<Callback>(callback)}, invConnectionsIndex](
const boost::system::error_code& ec,
const dbus::utility::ManagedObjectType& resp) {
- BMCWEB_LOG_DEBUG << "getInventoryItemsData respHandler enter";
+ BMCWEB_LOG_DEBUG("getInventoryItemsData respHandler enter");
if (ec)
{
- BMCWEB_LOG_ERROR
- << "getInventoryItemsData respHandler DBus error " << ec;
+ BMCWEB_LOG_ERROR(
+ "getInventoryItemsData respHandler DBus error {}", ec);
messages::internalError(sensorsAsyncResp->asyncResp->res);
return;
}
@@ -1487,11 +1487,11 @@ static void getInventoryItemsData(
invConnections, std::move(callback),
invConnectionsIndex + 1);
- BMCWEB_LOG_DEBUG << "getInventoryItemsData respHandler exit";
+ BMCWEB_LOG_DEBUG("getInventoryItemsData respHandler exit");
});
}
- BMCWEB_LOG_DEBUG << "getInventoryItemsData exit";
+ BMCWEB_LOG_DEBUG("getInventoryItemsData exit");
}
/**
@@ -1518,7 +1518,7 @@ static void getInventoryItemsConnections(
const std::shared_ptr<std::vector<InventoryItem>>& inventoryItems,
Callback&& callback)
{
- BMCWEB_LOG_DEBUG << "getInventoryItemsConnections enter";
+ BMCWEB_LOG_DEBUG("getInventoryItemsConnections enter");
const std::string path = "/xyz/openbmc_project/inventory";
constexpr std::array<std::string_view, 4> interfaces = {
@@ -1535,12 +1535,12 @@ static void getInventoryItemsConnections(
const boost::system::error_code& ec,
const dbus::utility::MapperGetSubTreeResponse& subtree) {
// Response handler for parsing output from GetSubTree
- BMCWEB_LOG_DEBUG << "getInventoryItemsConnections respHandler enter";
+ BMCWEB_LOG_DEBUG("getInventoryItemsConnections respHandler enter");
if (ec)
{
messages::internalError(sensorsAsyncResp->asyncResp->res);
- BMCWEB_LOG_ERROR
- << "getInventoryItemsConnections respHandler DBus error " << ec;
+ BMCWEB_LOG_ERROR(
+ "getInventoryItemsConnections respHandler DBus error {}", ec);
return;
}
@@ -1569,9 +1569,9 @@ static void getInventoryItemsConnections(
}
callback(invConnections);
- BMCWEB_LOG_DEBUG << "getInventoryItemsConnections respHandler exit";
+ BMCWEB_LOG_DEBUG("getInventoryItemsConnections respHandler exit");
});
- BMCWEB_LOG_DEBUG << "getInventoryItemsConnections exit";
+ BMCWEB_LOG_DEBUG("getInventoryItemsConnections exit");
}
/**
@@ -1600,7 +1600,7 @@ static void getInventoryItemAssociations(
const std::shared_ptr<std::set<std::string>>& sensorNames,
Callback&& callback)
{
- BMCWEB_LOG_DEBUG << "getInventoryItemAssociations enter";
+ BMCWEB_LOG_DEBUG("getInventoryItemAssociations enter");
// Call GetManagedObjects on the ObjectMapper to get all associations
sdbusplus::message::object_path path("/");
@@ -1609,11 +1609,11 @@ static void getInventoryItemAssociations(
[callback{std::forward<Callback>(callback)}, sensorsAsyncResp,
sensorNames](const boost::system::error_code& ec,
const dbus::utility::ManagedObjectType& resp) {
- BMCWEB_LOG_DEBUG << "getInventoryItemAssociations respHandler enter";
+ BMCWEB_LOG_DEBUG("getInventoryItemAssociations respHandler enter");
if (ec)
{
- BMCWEB_LOG_ERROR
- << "getInventoryItemAssociations respHandler DBus error " << ec;
+ BMCWEB_LOG_ERROR(
+ "getInventoryItemAssociations respHandler DBus error {}", ec);
messages::internalError(sensorsAsyncResp->asyncResp->res);
return;
}
@@ -1713,10 +1713,10 @@ static void getInventoryItemAssociations(
}
}
callback(inventoryItems);
- BMCWEB_LOG_DEBUG << "getInventoryItemAssociations respHandler exit";
+ BMCWEB_LOG_DEBUG("getInventoryItemAssociations respHandler exit");
});
- BMCWEB_LOG_DEBUG << "getInventoryItemAssociations exit";
+ BMCWEB_LOG_DEBUG("getInventoryItemAssociations exit");
}
/**
@@ -1755,13 +1755,13 @@ void getInventoryLedData(
std::shared_ptr<std::map<std::string, std::string>> ledConnections,
Callback&& callback, size_t ledConnectionsIndex = 0)
{
- BMCWEB_LOG_DEBUG << "getInventoryLedData enter";
+ BMCWEB_LOG_DEBUG("getInventoryLedData enter");
// If no more connections left, call callback
if (ledConnectionsIndex >= ledConnections->size())
{
callback();
- BMCWEB_LOG_DEBUG << "getInventoryLedData exit";
+ BMCWEB_LOG_DEBUG("getInventoryLedData exit");
return;
}
@@ -1777,16 +1777,16 @@ void getInventoryLedData(
[sensorsAsyncResp, inventoryItems, ledConnections, ledPath,
callback{std::forward<Callback>(callback)}, ledConnectionsIndex](
const boost::system::error_code& ec, const std::string& state) {
- BMCWEB_LOG_DEBUG << "getInventoryLedData respHandler enter";
+ BMCWEB_LOG_DEBUG("getInventoryLedData respHandler enter");
if (ec)
{
- BMCWEB_LOG_ERROR
- << "getInventoryLedData respHandler DBus error " << ec;
+ BMCWEB_LOG_ERROR(
+ "getInventoryLedData respHandler DBus error {}", ec);
messages::internalError(sensorsAsyncResp->asyncResp->res);
return;
}
- BMCWEB_LOG_DEBUG << "Led state: " << state;
+ BMCWEB_LOG_DEBUG("Led state: {}", state);
// Find inventory item with this LED object path
InventoryItem* inventoryItem =
findInventoryItemForLed(*inventoryItems, ledPath);
@@ -1816,7 +1816,7 @@ void getInventoryLedData(
ledConnections, std::move(callback),
ledConnectionsIndex + 1);
- BMCWEB_LOG_DEBUG << "getInventoryLedData respHandler exit";
+ BMCWEB_LOG_DEBUG("getInventoryLedData respHandler exit");
};
// Get the State property for the current LED
@@ -1826,7 +1826,7 @@ void getInventoryLedData(
std::move(respHandler));
}
- BMCWEB_LOG_DEBUG << "getInventoryLedData exit";
+ BMCWEB_LOG_DEBUG("getInventoryLedData exit");
}
/**
@@ -1857,7 +1857,7 @@ void getInventoryLeds(
std::shared_ptr<std::vector<InventoryItem>> inventoryItems,
Callback&& callback)
{
- BMCWEB_LOG_DEBUG << "getInventoryLeds enter";
+ BMCWEB_LOG_DEBUG("getInventoryLeds enter");
const std::string path = "/xyz/openbmc_project";
constexpr std::array<std::string_view, 1> interfaces = {
@@ -1871,12 +1871,11 @@ void getInventoryLeds(
const boost::system::error_code& ec,
const dbus::utility::MapperGetSubTreeResponse& subtree) {
// Response handler for parsing output from GetSubTree
- BMCWEB_LOG_DEBUG << "getInventoryLeds respHandler enter";
+ BMCWEB_LOG_DEBUG("getInventoryLeds respHandler enter");
if (ec)
{
messages::internalError(sensorsAsyncResp->asyncResp->res);
- BMCWEB_LOG_ERROR << "getInventoryLeds respHandler DBus error "
- << ec;
+ BMCWEB_LOG_ERROR("getInventoryLeds respHandler DBus error {}", ec);
return;
}
@@ -1898,16 +1897,15 @@ void getInventoryLeds(
// Add mapping from ledPath to connection
const std::string& connection = object.second.begin()->first;
(*ledConnections)[ledPath] = connection;
- BMCWEB_LOG_DEBUG << "Added mapping " << ledPath << " -> "
- << connection;
+ BMCWEB_LOG_DEBUG("Added mapping {} -> {}", ledPath, connection);
}
}
getInventoryLedData(sensorsAsyncResp, inventoryItems, ledConnections,
std::move(callback));
- BMCWEB_LOG_DEBUG << "getInventoryLeds respHandler exit";
+ BMCWEB_LOG_DEBUG("getInventoryLeds respHandler exit");
});
- BMCWEB_LOG_DEBUG << "getInventoryLeds exit";
+ BMCWEB_LOG_DEBUG("getInventoryLeds exit");
}
/**
@@ -1941,11 +1939,11 @@ void getPowerSupplyAttributesData(
const std::map<std::string, std::string>& psAttributesConnections,
Callback&& callback)
{
- BMCWEB_LOG_DEBUG << "getPowerSupplyAttributesData enter";
+ BMCWEB_LOG_DEBUG("getPowerSupplyAttributesData enter");
if (psAttributesConnections.empty())
{
- BMCWEB_LOG_DEBUG << "Can't find PowerSupplyAttributes, no connections!";
+ BMCWEB_LOG_DEBUG("Can't find PowerSupplyAttributes, no connections!");
callback(inventoryItems);
return;
}
@@ -1961,16 +1959,16 @@ void getPowerSupplyAttributesData(
[sensorsAsyncResp, inventoryItems,
callback{std::forward<Callback>(callback)}](
const boost::system::error_code& ec, const uint32_t value) {
- BMCWEB_LOG_DEBUG << "getPowerSupplyAttributesData respHandler enter";
+ BMCWEB_LOG_DEBUG("getPowerSupplyAttributesData respHandler enter");
if (ec)
{
- BMCWEB_LOG_ERROR
- << "getPowerSupplyAttributesData respHandler DBus error " << ec;
+ BMCWEB_LOG_ERROR(
+ "getPowerSupplyAttributesData respHandler DBus error {}", ec);
messages::internalError(sensorsAsyncResp->asyncResp->res);
return;
}
- BMCWEB_LOG_DEBUG << "PS EfficiencyPercent value: " << value;
+ BMCWEB_LOG_DEBUG("PS EfficiencyPercent value: {}", value);
// Store value in Power Supply Inventory Items
for (InventoryItem& inventoryItem : *inventoryItems)
{
@@ -1981,7 +1979,7 @@ void getPowerSupplyAttributesData(
}
}
- BMCWEB_LOG_DEBUG << "getPowerSupplyAttributesData respHandler exit";
+ BMCWEB_LOG_DEBUG("getPowerSupplyAttributesData respHandler exit");
callback(inventoryItems);
};
@@ -1992,7 +1990,7 @@ void getPowerSupplyAttributesData(
"xyz.openbmc_project.Control.PowerSupplyAttributes", "DeratingFactor",
std::move(respHandler));
- BMCWEB_LOG_DEBUG << "getPowerSupplyAttributesData exit";
+ BMCWEB_LOG_DEBUG("getPowerSupplyAttributesData exit");
}
/**
@@ -2024,12 +2022,12 @@ void getPowerSupplyAttributes(
std::shared_ptr<std::vector<InventoryItem>> inventoryItems,
Callback&& callback)
{
- BMCWEB_LOG_DEBUG << "getPowerSupplyAttributes enter";
+ BMCWEB_LOG_DEBUG("getPowerSupplyAttributes enter");
// Only need the power supply attributes when the Power Schema
if (sensorsAsyncResp->chassisSubNode != sensors::node::power)
{
- BMCWEB_LOG_DEBUG << "getPowerSupplyAttributes exit since not Power";
+ BMCWEB_LOG_DEBUG("getPowerSupplyAttributes exit since not Power");
callback(inventoryItems);
return;
}
@@ -2045,17 +2043,17 @@ void getPowerSupplyAttributes(
const boost::system::error_code& ec,
const dbus::utility::MapperGetSubTreeResponse& subtree) {
// Response handler for parsing output from GetSubTree
- BMCWEB_LOG_DEBUG << "getPowerSupplyAttributes respHandler enter";
+ BMCWEB_LOG_DEBUG("getPowerSupplyAttributes respHandler enter");
if (ec)
{
messages::internalError(sensorsAsyncResp->asyncResp->res);
- BMCWEB_LOG_ERROR
- << "getPowerSupplyAttributes respHandler DBus error " << ec;
+ BMCWEB_LOG_ERROR(
+ "getPowerSupplyAttributes respHandler DBus error {}", ec);
return;
}
if (subtree.empty())
{
- BMCWEB_LOG_DEBUG << "Can't find Power Supply Attributes!";
+ BMCWEB_LOG_DEBUG("Can't find Power Supply Attributes!");
callback(inventoryItems);
return;
}
@@ -2067,7 +2065,7 @@ void getPowerSupplyAttributes(
if (subtree[0].first.empty() || subtree[0].second.empty())
{
- BMCWEB_LOG_DEBUG << "Power Supply Attributes mapper error!";
+ BMCWEB_LOG_DEBUG("Power Supply Attributes mapper error!");
callback(inventoryItems);
return;
}
@@ -2077,21 +2075,21 @@ void getPowerSupplyAttributes(
if (connection.empty())
{
- BMCWEB_LOG_DEBUG << "Power Supply Attributes mapper error!";
+ BMCWEB_LOG_DEBUG("Power Supply Attributes mapper error!");
callback(inventoryItems);
return;
}
psAttributesConnections[psAttributesPath] = connection;
- BMCWEB_LOG_DEBUG << "Added mapping " << psAttributesPath << " -> "
- << connection;
+ BMCWEB_LOG_DEBUG("Added mapping {} -> {}", psAttributesPath,
+ connection);
getPowerSupplyAttributesData(sensorsAsyncResp, inventoryItems,
psAttributesConnections,
std::move(callback));
- BMCWEB_LOG_DEBUG << "getPowerSupplyAttributes respHandler exit";
+ BMCWEB_LOG_DEBUG("getPowerSupplyAttributes respHandler exit");
});
- BMCWEB_LOG_DEBUG << "getPowerSupplyAttributes exit";
+ BMCWEB_LOG_DEBUG("getPowerSupplyAttributes exit");
}
/**
@@ -2122,52 +2120,52 @@ static void
const std::shared_ptr<std::set<std::string>> sensorNames,
Callback&& callback)
{
- BMCWEB_LOG_DEBUG << "getInventoryItems enter";
+ BMCWEB_LOG_DEBUG("getInventoryItems enter");
auto getInventoryItemAssociationsCb =
[sensorsAsyncResp, callback{std::forward<Callback>(callback)}](
std::shared_ptr<std::vector<InventoryItem>> inventoryItems) {
- BMCWEB_LOG_DEBUG << "getInventoryItemAssociationsCb enter";
+ BMCWEB_LOG_DEBUG("getInventoryItemAssociationsCb enter");
auto getInventoryItemsConnectionsCb =
[sensorsAsyncResp, inventoryItems,
callback{std::forward<const Callback>(callback)}](
std::shared_ptr<std::set<std::string>> invConnections) {
- BMCWEB_LOG_DEBUG << "getInventoryItemsConnectionsCb enter";
+ BMCWEB_LOG_DEBUG("getInventoryItemsConnectionsCb enter");
auto getInventoryItemsDataCb = [sensorsAsyncResp, inventoryItems,
callback{std::move(callback)}]() {
- BMCWEB_LOG_DEBUG << "getInventoryItemsDataCb enter";
+ BMCWEB_LOG_DEBUG("getInventoryItemsDataCb enter");
auto getInventoryLedsCb = [sensorsAsyncResp, inventoryItems,
callback{std::move(callback)}]() {
- BMCWEB_LOG_DEBUG << "getInventoryLedsCb enter";
+ BMCWEB_LOG_DEBUG("getInventoryLedsCb enter");
// Find Power Supply Attributes and get the data
getPowerSupplyAttributes(sensorsAsyncResp, inventoryItems,
std::move(callback));
- BMCWEB_LOG_DEBUG << "getInventoryLedsCb exit";
+ BMCWEB_LOG_DEBUG("getInventoryLedsCb exit");
};
// Find led connections and get the data
getInventoryLeds(sensorsAsyncResp, inventoryItems,
std::move(getInventoryLedsCb));
- BMCWEB_LOG_DEBUG << "getInventoryItemsDataCb exit";
+ BMCWEB_LOG_DEBUG("getInventoryItemsDataCb exit");
};
// Get inventory item data from connections
getInventoryItemsData(sensorsAsyncResp, inventoryItems,
invConnections,
std::move(getInventoryItemsDataCb));
- BMCWEB_LOG_DEBUG << "getInventoryItemsConnectionsCb exit";
+ BMCWEB_LOG_DEBUG("getInventoryItemsConnectionsCb exit");
};
// Get connections that provide inventory item data
getInventoryItemsConnections(sensorsAsyncResp, inventoryItems,
std::move(getInventoryItemsConnectionsCb));
- BMCWEB_LOG_DEBUG << "getInventoryItemAssociationsCb exit";
+ BMCWEB_LOG_DEBUG("getInventoryItemAssociationsCb exit");
};
// Get associations from sensors to inventory items
getInventoryItemAssociations(sensorsAsyncResp, sensorNames,
std::move(getInventoryItemAssociationsCb));
- BMCWEB_LOG_DEBUG << "getInventoryItems exit";
+ BMCWEB_LOG_DEBUG("getInventoryItems exit");
}
/**
@@ -2258,7 +2256,7 @@ inline void getSensorData(
const std::set<std::string>& connections,
const std::shared_ptr<std::vector<InventoryItem>>& inventoryItems)
{
- BMCWEB_LOG_DEBUG << "getSensorData enter";
+ BMCWEB_LOG_DEBUG("getSensorData enter");
// Get managed objects from all services exposing sensors
for (const std::string& connection : connections)
{
@@ -2269,10 +2267,10 @@ inline void getSensorData(
[sensorsAsyncResp, sensorNames,
inventoryItems](const boost::system::error_code& ec,
const dbus::utility::ManagedObjectType& resp) {
- BMCWEB_LOG_DEBUG << "getManagedObjectsCb enter";
+ BMCWEB_LOG_DEBUG("getManagedObjectsCb enter");
if (ec)
{
- BMCWEB_LOG_ERROR << "getManagedObjectsCb DBUS error: " << ec;
+ BMCWEB_LOG_ERROR("getManagedObjectsCb DBUS error: {}", ec);
messages::internalError(sensorsAsyncResp->asyncResp->res);
return;
}
@@ -2281,8 +2279,8 @@ inline void getSensorData(
{
const std::string& objPath =
static_cast<const std::string&>(objDictEntry.first);
- BMCWEB_LOG_DEBUG << "getManagedObjectsCb parsing object "
- << objPath;
+ BMCWEB_LOG_DEBUG("getManagedObjectsCb parsing object {}",
+ objPath);
std::vector<std::string> split;
// Reserve space for
@@ -2292,19 +2290,19 @@ inline void getSensorData(
bmcweb::split(split, objPath, '/');
if (split.size() < 6)
{
- BMCWEB_LOG_ERROR << "Got path that isn't long enough "
- << objPath;
+ BMCWEB_LOG_ERROR("Got path that isn't long enough {}",
+ objPath);
continue;
}
// These indexes aren't intuitive, as split puts an empty
// string at the beginning
const std::string& sensorType = split[4];
const std::string& sensorName = split[5];
- BMCWEB_LOG_DEBUG << "sensorName " << sensorName
- << " sensorType " << sensorType;
+ BMCWEB_LOG_DEBUG("sensorName {} sensorType {}", sensorName,
+ sensorType);
if (sensorNames->find(objPath) == sensorNames->end())
{
- BMCWEB_LOG_DEBUG << sensorName << " not in sensor list ";
+ BMCWEB_LOG_DEBUG("{} not in sensor list ", sensorName);
continue;
}
@@ -2375,8 +2373,8 @@ inline void getSensorData(
}
else
{
- BMCWEB_LOG_ERROR << "Unsure how to handle sensorType "
- << sensorType;
+ BMCWEB_LOG_ERROR("Unsure how to handle sensorType {}",
+ sensorType);
continue;
}
@@ -2476,10 +2474,10 @@ inline void getSensorData(
populateFanRedundancy(sensorsAsyncResp);
}
}
- BMCWEB_LOG_DEBUG << "getManagedObjectsCb exit";
+ BMCWEB_LOG_DEBUG("getManagedObjectsCb exit");
});
}
- BMCWEB_LOG_DEBUG << "getSensorData exit";
+ BMCWEB_LOG_DEBUG("getSensorData exit");
}
inline void
@@ -2488,23 +2486,23 @@ inline void
{
auto getConnectionCb = [sensorsAsyncResp, sensorNames](
const std::set<std::string>& connections) {
- BMCWEB_LOG_DEBUG << "getConnectionCb enter";
+ BMCWEB_LOG_DEBUG("getConnectionCb enter");
auto getInventoryItemsCb =
[sensorsAsyncResp, sensorNames,
connections](const std::shared_ptr<std::vector<InventoryItem>>&
inventoryItems) {
- BMCWEB_LOG_DEBUG << "getInventoryItemsCb enter";
+ BMCWEB_LOG_DEBUG("getInventoryItemsCb enter");
// Get sensor data and store results in JSON
getSensorData(sensorsAsyncResp, sensorNames, connections,
inventoryItems);
- BMCWEB_LOG_DEBUG << "getInventoryItemsCb exit";
+ BMCWEB_LOG_DEBUG("getInventoryItemsCb exit");
};
// Get inventory items associated with sensors
getInventoryItems(sensorsAsyncResp, sensorNames,
std::move(getInventoryItemsCb));
- BMCWEB_LOG_DEBUG << "getConnectionCb exit";
+ BMCWEB_LOG_DEBUG("getConnectionCb exit");
};
// Get set of connections that provide sensor values
@@ -2519,13 +2517,13 @@ inline void
inline void
getChassisData(const std::shared_ptr<SensorsAsyncResp>& sensorsAsyncResp)
{
- BMCWEB_LOG_DEBUG << "getChassisData enter";
+ BMCWEB_LOG_DEBUG("getChassisData enter");
auto getChassisCb =
[sensorsAsyncResp](
const std::shared_ptr<std::set<std::string>>& sensorNames) {
- BMCWEB_LOG_DEBUG << "getChassisCb enter";
+ BMCWEB_LOG_DEBUG("getChassisCb enter");
processSensorList(sensorsAsyncResp, sensorNames);
- BMCWEB_LOG_DEBUG << "getChassisCb exit";
+ BMCWEB_LOG_DEBUG("getChassisCb exit");
};
// SensorCollection doesn't contain the Redundancy property
if (sensorsAsyncResp->chassisSubNode != sensors::node::sensors)
@@ -2537,7 +2535,7 @@ inline void
getChassis(sensorsAsyncResp->asyncResp, sensorsAsyncResp->chassisId,
sensorsAsyncResp->chassisSubNode, sensorsAsyncResp->types,
std::move(getChassisCb));
- BMCWEB_LOG_DEBUG << "getChassisData exit";
+ BMCWEB_LOG_DEBUG("getChassisData exit");
}
/**
@@ -2601,8 +2599,8 @@ inline void setSensorsOverride(
std::unordered_map<std::string, std::vector<nlohmann::json>>&
allCollections)
{
- BMCWEB_LOG_INFO << "setSensorsOverride for subNode"
- << sensorAsyncResp->chassisSubNode << "\n";
+ BMCWEB_LOG_INFO("setSensorsOverride for subNode{}",
+ sensorAsyncResp->chassisSubNode);
const char* propertyValueName = nullptr;
std::unordered_map<std::string, std::pair<double, std::string>> overrideMap;
@@ -2650,7 +2648,7 @@ inline void setSensorsOverride(
if (!findSensorNameUsingSensorPath(sensorNameType.second,
*sensorsList, *sensorNames))
{
- BMCWEB_LOG_INFO << "Unable to find memberId " << item.first;
+ BMCWEB_LOG_INFO("Unable to find memberId {}", item.first);
messages::resourceNotFound(sensorAsyncResp->asyncResp->res,
item.second.second, item.first);
return;
@@ -2664,10 +2662,9 @@ inline void setSensorsOverride(
objectsWithConnection) {
if (objectsWithConnection.size() != overrideMap.size())
{
- BMCWEB_LOG_INFO
- << "Unable to find all objects with proper connection "
- << objectsWithConnection.size() << " requested "
- << overrideMap.size() << "\n";
+ BMCWEB_LOG_INFO(
+ "Unable to find all objects with proper connection {} requested {}",
+ objectsWithConnection.size(), overrideMap.size());
messages::resourceNotFound(sensorAsyncResp->asyncResp->res,
sensorAsyncResp->chassisSubNode ==
sensors::node::thermal
@@ -2689,8 +2686,8 @@ inline void setSensorsOverride(
const auto& iterator = overrideMap.find(sensorName);
if (iterator == overrideMap.end())
{
- BMCWEB_LOG_INFO << "Unable to find sensor object"
- << item.first << "\n";
+ BMCWEB_LOG_INFO("Unable to find sensor object{}",
+ item.first);
messages::internalError(sensorAsyncResp->asyncResp->res);
return;
}
@@ -2704,16 +2701,16 @@ inline void setSensorsOverride(
if (ec.value() ==
boost::system::errc::permission_denied)
{
- BMCWEB_LOG_WARNING
- << "Manufacturing mode is not Enabled...can't "
- "Override the sensor value. ";
+ BMCWEB_LOG_WARNING(
+ "Manufacturing mode is not Enabled...can't "
+ "Override the sensor value. ");
messages::insufficientPrivilege(
sensorAsyncResp->asyncResp->res);
return;
}
- BMCWEB_LOG_DEBUG
- << "setOverrideValueStatus DBUS error: " << ec;
+ BMCWEB_LOG_DEBUG(
+ "setOverrideValueStatus DBUS error: {}", ec);
messages::internalError(
sensorAsyncResp->asyncResp->res);
}
@@ -2751,7 +2748,7 @@ inline void retrieveUriToDbusMap(const std::string& chassis,
[&node](auto&& val) { return val.first == node; });
if (pathIt == sensors::paths.cend())
{
- BMCWEB_LOG_ERROR << "Wrong node provided : " << node;
+ BMCWEB_LOG_ERROR("Wrong node provided : {}", node);
mapComplete(boost::beast::http::status::bad_request, {});
return;
}
@@ -2776,18 +2773,18 @@ inline void getChassisCallback(
std::string_view chassisId, std::string_view chassisSubNode,
const std::shared_ptr<std::set<std::string>>& sensorNames)
{
- BMCWEB_LOG_DEBUG << "getChassisCallback enter ";
+ BMCWEB_LOG_DEBUG("getChassisCallback enter ");
nlohmann::json& entriesArray = asyncResp->res.jsonValue["Members"];
for (const std::string& sensor : *sensorNames)
{
- BMCWEB_LOG_DEBUG << "Adding sensor: " << sensor;
+ BMCWEB_LOG_DEBUG("Adding sensor: {}", sensor);
sdbusplus::message::object_path path(sensor);
std::string sensorName = path.filename();
if (sensorName.empty())
{
- BMCWEB_LOG_ERROR << "Invalid sensor path: " << sensor;
+ BMCWEB_LOG_ERROR("Invalid sensor path: {}", sensor);
messages::internalError(asyncResp->res);
return;
}
@@ -2807,7 +2804,7 @@ inline void getChassisCallback(
}
asyncResp->res.jsonValue["Members@odata.count"] = entriesArray.size();
- BMCWEB_LOG_DEBUG << "getChassisCallback exit";
+ BMCWEB_LOG_DEBUG("getChassisCallback exit");
}
inline void handleSensorCollectionGet(
@@ -2834,8 +2831,8 @@ inline void handleSensorCollectionGet(
/*efficientExpand=*/true);
getChassisData(sensorsAsyncResp);
- BMCWEB_LOG_DEBUG
- << "SensorCollection doGet exit via efficient expand handler";
+ BMCWEB_LOG_DEBUG(
+ "SensorCollection doGet exit via efficient expand handler");
return;
}
@@ -2858,8 +2855,8 @@ inline void
}
const auto& valueIface = *mapperResponse.begin();
const std::string& connectionName = valueIface.first;
- BMCWEB_LOG_DEBUG << "Looking up " << connectionName;
- BMCWEB_LOG_DEBUG << "Path " << sensorPath;
+ BMCWEB_LOG_DEBUG("Looking up {}", connectionName);
+ BMCWEB_LOG_DEBUG("Path {}", sensorPath);
sdbusplus::asio::getAllProperties(
*crow::connections::systemBus, connectionName, sensorPath, "",
@@ -2900,7 +2897,7 @@ inline void handleSensorGet(App& app, const crow::Request& req,
asyncResp->res.jsonValue["@odata.id"] = boost::urls::format(
"/redfish/v1/Chassis/{}/Sensors/{}", chassisId, sensorId);
- BMCWEB_LOG_DEBUG << "Sensor doGet enter";
+ BMCWEB_LOG_DEBUG("Sensor doGet enter");
constexpr std::array<std::string_view, 1> interfaces = {
"xyz.openbmc_project.Sensor.Value"};
@@ -2913,22 +2910,22 @@ inline void handleSensorGet(App& app, const crow::Request& req,
[asyncResp, sensorId,
sensorPath](const boost::system::error_code& ec,
const ::dbus::utility::MapperGetObject& subtree) {
- BMCWEB_LOG_DEBUG << "respHandler1 enter";
+ BMCWEB_LOG_DEBUG("respHandler1 enter");
if (ec == boost::system::errc::io_error)
{
- BMCWEB_LOG_WARNING << "Sensor not found from getSensorPaths";
+ BMCWEB_LOG_WARNING("Sensor not found from getSensorPaths");
messages::resourceNotFound(asyncResp->res, sensorId, "Sensor");
return;
}
if (ec)
{
messages::internalError(asyncResp->res);
- BMCWEB_LOG_ERROR << "Sensor getSensorPaths resp_handler: "
- << "Dbus error " << ec;
+ BMCWEB_LOG_ERROR(
+ "Sensor getSensorPaths resp_handler: Dbus error {}", ec);
return;
}
getSensorFromDbus(asyncResp, sensorPath, subtree);
- BMCWEB_LOG_DEBUG << "respHandler1 exit";
+ BMCWEB_LOG_DEBUG("respHandler1 exit");
});
}
diff --git a/redfish-core/lib/storage.hpp b/redfish-core/lib/storage.hpp
index 6b60ae75fa..1f41ea8685 100644
--- a/redfish-core/lib/storage.hpp
+++ b/redfish-core/lib/storage.hpp
@@ -110,7 +110,7 @@ inline void afterChassisDriveCollectionSubtree(
{
if (ec)
{
- BMCWEB_LOG_ERROR << "Drive mapper call error";
+ BMCWEB_LOG_ERROR("Drive mapper call error");
messages::internalError(asyncResp->res);
return;
}
@@ -131,7 +131,7 @@ inline void afterChassisDriveCollectionSubtree(
sdbusplus::message::object_path object(drive);
if (object.filename().empty())
{
- BMCWEB_LOG_ERROR << "Failed to find filename in " << drive;
+ BMCWEB_LOG_ERROR("Failed to find filename in {}", drive);
return;
}
@@ -161,7 +161,7 @@ inline void afterSystemsStorageGetSubtree(
{
if (ec)
{
- BMCWEB_LOG_DEBUG << "requestRoutesStorage DBUS response error";
+ BMCWEB_LOG_DEBUG("requestRoutesStorage DBUS response error");
messages::resourceNotFound(asyncResp->res, "#Storage.v1_13_0.Storage",
storageId);
return;
@@ -230,7 +230,7 @@ inline void afterSubtree(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
{
if (ec)
{
- BMCWEB_LOG_DEBUG << "requestRoutesStorage DBUS response error";
+ BMCWEB_LOG_DEBUG("requestRoutesStorage DBUS response error");
messages::resourceNotFound(asyncResp->res, "#Storage.v1_13_0.Storage",
storageId);
return;
@@ -274,7 +274,7 @@ inline void
{
if (!redfish::setUpRedfishRoute(app, req, asyncResp))
{
- BMCWEB_LOG_DEBUG << "requestRoutesStorage setUpRedfishRoute failed";
+ BMCWEB_LOG_DEBUG("requestRoutesStorage setUpRedfishRoute failed");
return;
}
@@ -478,7 +478,7 @@ inline void
if (value == nullptr)
{
// illegal property
- BMCWEB_LOG_ERROR << "Illegal property: Type";
+ BMCWEB_LOG_ERROR("Illegal property: Type");
messages::internalError(asyncResp->res);
return;
}
@@ -487,8 +487,8 @@ inline void
convertDriveType(*value);
if (!mediaType)
{
- BMCWEB_LOG_WARNING << "UnknownDriveType Interface: "
- << *value;
+ BMCWEB_LOG_WARNING("UnknownDriveType Interface: {}",
+ *value);
continue;
}
if (*mediaType == drive::MediaType::Invalid)
@@ -505,7 +505,7 @@ inline void
std::get_if<uint64_t>(&property.second);
if (capacity == nullptr)
{
- BMCWEB_LOG_ERROR << "Illegal property: Capacity";
+ BMCWEB_LOG_ERROR("Illegal property: Capacity");
messages::internalError(asyncResp->res);
return;
}
@@ -523,7 +523,7 @@ inline void
std::get_if<std::string>(&property.second);
if (value == nullptr)
{
- BMCWEB_LOG_ERROR << "Illegal property: Protocol";
+ BMCWEB_LOG_ERROR("Illegal property: Protocol");
messages::internalError(asyncResp->res);
return;
}
@@ -532,8 +532,8 @@ inline void
convertDriveProtocol(*value);
if (!proto)
{
- BMCWEB_LOG_WARNING << "Unknown DrivePrototype Interface: "
- << *value;
+ BMCWEB_LOG_WARNING("Unknown DrivePrototype Interface: {}",
+ *value);
continue;
}
if (*proto == protocol::Protocol::Invalid)
@@ -549,8 +549,8 @@ inline void
std::get_if<uint8_t>(&property.second);
if (lifeLeft == nullptr)
{
- BMCWEB_LOG_ERROR
- << "Illegal property: PredictedMediaLifeLeftPercent";
+ BMCWEB_LOG_ERROR(
+ "Illegal property: PredictedMediaLifeLeftPercent");
messages::internalError(asyncResp->res);
return;
}
@@ -566,7 +566,7 @@ inline void
encryptionStatus = std::get_if<std::string>(&property.second);
if (encryptionStatus == nullptr)
{
- BMCWEB_LOG_ERROR << "Illegal property: EncryptionStatus";
+ BMCWEB_LOG_ERROR("Illegal property: EncryptionStatus");
messages::internalError(asyncResp->res);
return;
}
@@ -576,7 +576,7 @@ inline void
isLocked = std::get_if<bool>(&property.second);
if (isLocked == nullptr)
{
- BMCWEB_LOG_ERROR << "Illegal property: Locked";
+ BMCWEB_LOG_ERROR("Illegal property: Locked");
messages::internalError(asyncResp->res);
return;
}
@@ -646,7 +646,7 @@ inline void afterGetSubtreeSystemsStorageDrive(
{
if (ec)
{
- BMCWEB_LOG_ERROR << "Drive mapper call error";
+ BMCWEB_LOG_ERROR("Drive mapper call error");
messages::internalError(asyncResp->res);
return;
}
@@ -676,8 +676,8 @@ inline void afterGetSubtreeSystemsStorageDrive(
if (connectionNames.size() != 1)
{
- BMCWEB_LOG_ERROR << "Connection size " << connectionNames.size()
- << ", not equal to 1";
+ BMCWEB_LOG_ERROR("Connection size {}, not equal to 1",
+ connectionNames.size());
messages::internalError(asyncResp->res);
return;
}
@@ -770,7 +770,7 @@ inline void afterChassisDriveCollectionSubtreeGet(
if (connectionNames.empty())
{
- BMCWEB_LOG_ERROR << "Got 0 Connection names";
+ BMCWEB_LOG_ERROR("Got 0 Connection names");
continue;
}
@@ -787,7 +787,7 @@ inline void afterChassisDriveCollectionSubtreeGet(
const dbus::utility::MapperEndPoints& resp) {
if (ec3)
{
- BMCWEB_LOG_ERROR << "Error in chassis Drive association ";
+ BMCWEB_LOG_ERROR("Error in chassis Drive association ");
}
nlohmann::json& members = asyncResp->res.jsonValue["Members"];
// important if array is empty
@@ -856,7 +856,7 @@ inline void buildDrive(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
{
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS response error " << ec;
+ BMCWEB_LOG_DEBUG("DBUS response error {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -872,7 +872,7 @@ inline void buildDrive(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
if (connectionNames.empty())
{
- BMCWEB_LOG_ERROR << "Got 0 Connection names";
+ BMCWEB_LOG_ERROR("Got 0 Connection names");
continue;
}
@@ -959,7 +959,7 @@ inline void
if (connectionNames.empty())
{
- BMCWEB_LOG_ERROR << "Got 0 Connection names";
+ BMCWEB_LOG_ERROR("Got 0 Connection names");
continue;
}
@@ -999,7 +999,7 @@ inline void getStorageControllerAsset(
if (ec)
{
// this interface isn't necessary
- BMCWEB_LOG_DEBUG << "Failed to get StorageControllerAsset";
+ BMCWEB_LOG_DEBUG("Failed to get StorageControllerAsset");
return;
}
@@ -1058,7 +1058,7 @@ inline void populateStorageController(
// if we get a good return
if (ec)
{
- BMCWEB_LOG_DEBUG << "Failed to get Present property";
+ BMCWEB_LOG_DEBUG("Failed to get Present property");
return;
}
if (!isPresent)
@@ -1086,7 +1086,7 @@ inline void getStorageControllerHandler(
if (ec || subtree.empty())
{
// doesn't have to be there
- BMCWEB_LOG_DEBUG << "Failed to handle StorageController";
+ BMCWEB_LOG_DEBUG("Failed to handle StorageController");
return;
}
@@ -1096,7 +1096,7 @@ inline void getStorageControllerHandler(
std::string id = object.filename();
if (id.empty())
{
- BMCWEB_LOG_ERROR << "Failed to find filename in " << path;
+ BMCWEB_LOG_ERROR("Failed to find filename in {}", path);
return;
}
if (id != controllerId)
@@ -1106,8 +1106,8 @@ inline void getStorageControllerHandler(
if (interfaceDict.size() != 1)
{
- BMCWEB_LOG_ERROR << "Connection size " << interfaceDict.size()
- << ", greater than 1";
+ BMCWEB_LOG_ERROR("Connection size {}, greater than 1",
+ interfaceDict.size());
messages::internalError(asyncResp->res);
return;
}
@@ -1128,7 +1128,7 @@ inline void populateStorageControllerCollection(
{
asyncResp->res.jsonValue["Members"] = std::move(members);
asyncResp->res.jsonValue["Members@odata.count"] = 0;
- BMCWEB_LOG_DEBUG << "Failed to find any StorageController";
+ BMCWEB_LOG_DEBUG("Failed to find any StorageController");
return;
}
@@ -1137,7 +1137,7 @@ inline void populateStorageControllerCollection(
std::string id = sdbusplus::message::object_path(path).filename();
if (id.empty())
{
- BMCWEB_LOG_ERROR << "Failed to find filename in " << path;
+ BMCWEB_LOG_ERROR("Failed to find filename in {}", path);
return;
}
nlohmann::json::object_t member;
@@ -1156,15 +1156,15 @@ inline void handleSystemsStorageControllerCollectionGet(
{
if (!redfish::setUpRedfishRoute(app, req, asyncResp))
{
- BMCWEB_LOG_DEBUG
- << "Failed to setup Redfish Route for StorageController Collection";
+ BMCWEB_LOG_DEBUG(
+ "Failed to setup Redfish Route for StorageController Collection");
return;
}
if (systemName != "system")
{
messages::resourceNotFound(asyncResp->res, "ComputerSystem",
systemName);
- BMCWEB_LOG_DEBUG << "Failed to find ComputerSystem of " << systemName;
+ BMCWEB_LOG_DEBUG("Failed to find ComputerSystem of {}", systemName);
return;
}
@@ -1192,15 +1192,14 @@ inline void handleSystemsStorageControllerGet(
{
if (!redfish::setUpRedfishRoute(app, req, asyncResp))
{
- BMCWEB_LOG_DEBUG
- << "Failed to setup Redfish Route for StorageController";
+ BMCWEB_LOG_DEBUG("Failed to setup Redfish Route for StorageController");
return;
}
if (systemName != "system")
{
messages::resourceNotFound(asyncResp->res, "ComputerSystem",
systemName);
- BMCWEB_LOG_DEBUG << "Failed to find ComputerSystem of " << systemName;
+ BMCWEB_LOG_DEBUG("Failed to find ComputerSystem of {}", systemName);
return;
}
constexpr std::array<std::string_view, 1> interfaces = {
diff --git a/redfish-core/lib/systems.hpp b/redfish-core/lib/systems.hpp
index 69ef4908d1..609af7156a 100644
--- a/redfish-core/lib/systems.hpp
+++ b/redfish-core/lib/systems.hpp
@@ -64,7 +64,7 @@ inline void
updateDimmProperties(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
bool isDimmFunctional)
{
- BMCWEB_LOG_DEBUG << "Dimm Functional: " << isDimmFunctional;
+ BMCWEB_LOG_DEBUG("Dimm Functional: {}", isDimmFunctional);
// Set it as Enabled if at least one DIMM is functional
// Update STATE only if previous State was DISABLED and current Dimm is
@@ -93,7 +93,7 @@ inline void
inline void modifyCpuFunctionalState(
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp, bool isCpuFunctional)
{
- BMCWEB_LOG_DEBUG << "Cpu Functional: " << isCpuFunctional;
+ BMCWEB_LOG_DEBUG("Cpu Functional: {}", isCpuFunctional);
const nlohmann::json& prevProcState =
asyncResp->res.jsonValue["ProcessorSummary"]["Status"]["State"];
@@ -123,7 +123,7 @@ inline void
modifyCpuPresenceState(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
bool isCpuPresent)
{
- BMCWEB_LOG_DEBUG << "Cpu Present: " << isCpuPresent;
+ BMCWEB_LOG_DEBUG("Cpu Present: {}", isCpuPresent);
if (isCpuPresent)
{
@@ -144,7 +144,7 @@ inline void getProcessorProperties(
const std::vector<std::pair<std::string, dbus::utility::DbusVariantType>>&
properties)
{
- BMCWEB_LOG_DEBUG << "Got " << properties.size() << " Cpu properties.";
+ BMCWEB_LOG_DEBUG("Got {} Cpu properties.", properties.size());
// TODO: Get Model
@@ -193,7 +193,7 @@ inline void
const bool cpuPresenceCheck) {
if (ec3)
{
- BMCWEB_LOG_ERROR << "DBUS response error " << ec3;
+ BMCWEB_LOG_ERROR("DBUS response error {}", ec3);
return;
}
modifyCpuPresenceState(asyncResp, cpuPresenceCheck);
@@ -212,7 +212,7 @@ inline void
const bool cpuFunctionalCheck) {
if (ec3)
{
- BMCWEB_LOG_ERROR << "DBUS response error " << ec3;
+ BMCWEB_LOG_ERROR("DBUS response error {}", ec3);
return;
}
modifyCpuFunctionalState(asyncResp, cpuFunctionalCheck);
@@ -233,7 +233,7 @@ inline void
const dbus::utility::DBusPropertiesMap& properties) {
if (ec2)
{
- BMCWEB_LOG_ERROR << "DBUS response error " << ec2;
+ BMCWEB_LOG_ERROR("DBUS response error {}", ec2);
messages::internalError(asyncResp->res);
return;
}
@@ -257,7 +257,7 @@ inline void
[[maybe_unused]] const std::string& path,
const dbus::utility::DBusPropertiesMap& properties)
{
- BMCWEB_LOG_DEBUG << "Got " << properties.size() << " Dimm properties.";
+ BMCWEB_LOG_DEBUG("Got {} Dimm properties.", properties.size());
if (properties.empty())
{
@@ -272,7 +272,7 @@ inline void
bool dimmState) {
if (ec3)
{
- BMCWEB_LOG_ERROR << "DBUS response error " << ec3;
+ BMCWEB_LOG_ERROR("DBUS response error {}", ec3);
return;
}
updateDimmProperties(asyncResp, dimmState);
@@ -338,7 +338,7 @@ inline void
const dbus::utility::DBusPropertiesMap& properties) {
if (ec2)
{
- BMCWEB_LOG_ERROR << "DBUS response error " << ec2;
+ BMCWEB_LOG_ERROR("DBUS response error {}", ec2);
messages::internalError(asyncResp->res);
return;
}
@@ -358,7 +358,7 @@ inline void
getComputerSystem(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
const std::shared_ptr<HealthPopulate>& systemHealth)
{
- BMCWEB_LOG_DEBUG << "Get available system components.";
+ BMCWEB_LOG_DEBUG("Get available system components.");
constexpr std::array<std::string_view, 5> interfaces = {
"xyz.openbmc_project.Inventory.Decorator.Asset",
"xyz.openbmc_project.Inventory.Item.Cpu",
@@ -373,7 +373,7 @@ inline void
const dbus::utility::MapperGetSubTreeResponse& subtree) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS response error";
+ BMCWEB_LOG_DEBUG("DBUS response error");
messages::internalError(asyncResp->res);
return;
}
@@ -384,7 +384,7 @@ inline void
object : subtree)
{
const std::string& path = object.first;
- BMCWEB_LOG_DEBUG << "Got path: " << path;
+ BMCWEB_LOG_DEBUG("Got path: {}", path);
const std::vector<std::pair<std::string, std::vector<std::string>>>&
connectionNames = object.second;
if (connectionNames.empty())
@@ -419,8 +419,7 @@ inline void
if (interfaceName ==
"xyz.openbmc_project.Inventory.Item.Dimm")
{
- BMCWEB_LOG_DEBUG
- << "Found Dimm, now get its properties.";
+ BMCWEB_LOG_DEBUG("Found Dimm, now get its properties.");
getMemorySummary(asyncResp, connection.first, path);
@@ -432,8 +431,7 @@ inline void
else if (interfaceName ==
"xyz.openbmc_project.Inventory.Item.Cpu")
{
- BMCWEB_LOG_DEBUG
- << "Found Cpu, now get its properties.";
+ BMCWEB_LOG_DEBUG("Found Cpu, now get its properties.");
getProcessorSummary(asyncResp, connection.first, path);
@@ -444,8 +442,7 @@ inline void
}
else if (interfaceName == "xyz.openbmc_project.Common.UUID")
{
- BMCWEB_LOG_DEBUG
- << "Found UUID, now get its properties.";
+ BMCWEB_LOG_DEBUG("Found UUID, now get its properties.");
sdbusplus::asio::getAllProperties(
*crow::connections::systemBus, connection.first,
@@ -455,13 +452,12 @@ inline void
properties) {
if (ec3)
{
- BMCWEB_LOG_DEBUG << "DBUS response error "
- << ec3;
+ BMCWEB_LOG_DEBUG("DBUS response error {}", ec3);
messages::internalError(asyncResp->res);
return;
}
- BMCWEB_LOG_DEBUG << "Got " << properties.size()
- << " UUID properties.";
+ BMCWEB_LOG_DEBUG("Got {} UUID properties.",
+ properties.size());
const std::string* uUID = nullptr;
@@ -486,7 +482,7 @@ inline void
valueStr.insert(18, 1, '-');
valueStr.insert(23, 1, '-');
}
- BMCWEB_LOG_DEBUG << "UUID = " << valueStr;
+ BMCWEB_LOG_DEBUG("UUID = {}", valueStr);
asyncResp->res.jsonValue["UUID"] = valueStr;
}
});
@@ -507,8 +503,8 @@ inline void
// interface
return;
}
- BMCWEB_LOG_DEBUG << "Got " << propertiesList.size()
- << " properties for system";
+ BMCWEB_LOG_DEBUG("Got {} properties for system",
+ propertiesList.size());
const std::string* partNumber = nullptr;
const std::string* serialNumber = nullptr;
@@ -598,7 +594,7 @@ inline void
*/
inline void getHostState(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
{
- BMCWEB_LOG_DEBUG << "Get host information.";
+ BMCWEB_LOG_DEBUG("Get host information.");
sdbusplus::asio::getProperty<std::string>(
*crow::connections::systemBus, "xyz.openbmc_project.State.Host",
"/xyz/openbmc_project/state/host0", "xyz.openbmc_project.State.Host",
@@ -611,15 +607,15 @@ inline void getHostState(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
{
// Service not available, no error, just don't return
// host state info
- BMCWEB_LOG_DEBUG << "Service not available " << ec;
+ BMCWEB_LOG_DEBUG("Service not available {}", ec);
return;
}
- BMCWEB_LOG_ERROR << "DBUS response error " << ec;
+ BMCWEB_LOG_ERROR("DBUS response error {}", ec);
messages::internalError(asyncResp->res);
return;
}
- BMCWEB_LOG_DEBUG << "Host state: " << hostState;
+ BMCWEB_LOG_DEBUG("Host state: {}", hostState);
// Verify Host State
if (hostState == "xyz.openbmc_project.State.Host.HostState.Running")
{
@@ -814,8 +810,7 @@ inline std::string dbusToRfBootProgress(const std::string& dbusBootProgress)
}
else
{
- BMCWEB_LOG_DEBUG << "Unsupported D-Bus BootProgress "
- << dbusBootProgress;
+ BMCWEB_LOG_DEBUG("Unsupported D-Bus BootProgress {}", dbusBootProgress);
// Just return the default
}
return rfBpLastState;
@@ -870,9 +865,9 @@ inline int
}
else
{
- BMCWEB_LOG_DEBUG
- << "Invalid property value for BootSourceOverrideTarget: "
- << bootSource;
+ BMCWEB_LOG_DEBUG(
+ "Invalid property value for BootSourceOverrideTarget: {}",
+ bootSource);
messages::propertyValueNotInList(asyncResp->res, rfSource,
"BootSourceTargetOverride");
return -1;
@@ -902,7 +897,7 @@ inline void getBootProgress(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
return;
}
- BMCWEB_LOG_DEBUG << "Boot Progress: " << bootProgressStr;
+ BMCWEB_LOG_DEBUG("Boot Progress: {}", bootProgressStr);
asyncResp->res.jsonValue["BootProgress"]["LastState"] =
dbusToRfBootProgress(bootProgressStr);
@@ -927,7 +922,7 @@ inline void getBootProgressLastStateTime(
const uint64_t lastStateTime) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "D-BUS response error " << ec;
+ BMCWEB_LOG_DEBUG("D-BUS response error {}", ec);
return;
}
@@ -966,7 +961,7 @@ inline void
return;
}
- BMCWEB_LOG_DEBUG << "Boot type: " << bootType;
+ BMCWEB_LOG_DEBUG("Boot type: {}", bootType);
asyncResp->res
.jsonValue["Boot"]
@@ -1003,12 +998,12 @@ inline void
const std::string& bootModeStr) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS response error " << ec;
+ BMCWEB_LOG_DEBUG("DBUS response error {}", ec);
messages::internalError(asyncResp->res);
return;
}
- BMCWEB_LOG_DEBUG << "Boot mode: " << bootModeStr;
+ BMCWEB_LOG_DEBUG("Boot mode: {}", bootModeStr);
asyncResp->res
.jsonValue["Boot"]
@@ -1047,7 +1042,7 @@ inline void
const std::string& bootSourceStr) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS response error " << ec;
+ BMCWEB_LOG_DEBUG("DBUS response error {}", ec);
if (ec.value() == boost::asio::error::host_unreachable)
{
return;
@@ -1056,7 +1051,7 @@ inline void
return;
}
- BMCWEB_LOG_DEBUG << "Boot source: " << bootSourceStr;
+ BMCWEB_LOG_DEBUG("Boot source: {}", bootSourceStr);
auto rfSource = dbusToRfBootSource(bootSourceStr);
if (!rfSource.empty())
@@ -1101,7 +1096,7 @@ inline void processBootOverrideEnable(
[asyncResp](const boost::system::error_code& ec, bool oneTimeSetting) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS response error " << ec;
+ BMCWEB_LOG_DEBUG("DBUS response error {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -1138,7 +1133,7 @@ inline void
const bool bootOverrideEnable) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS response error " << ec;
+ BMCWEB_LOG_DEBUG("DBUS response error {}", ec);
if (ec.value() == boost::asio::error::host_unreachable)
{
return;
@@ -1161,7 +1156,7 @@ inline void
inline void
getBootProperties(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
{
- BMCWEB_LOG_DEBUG << "Get boot information.";
+ BMCWEB_LOG_DEBUG("Get boot information.");
getBootOverrideSource(asyncResp);
getBootOverrideType(asyncResp);
@@ -1183,7 +1178,7 @@ inline void
inline void
getLastResetTime(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
{
- BMCWEB_LOG_DEBUG << "Getting System Last Reset Time";
+ BMCWEB_LOG_DEBUG("Getting System Last Reset Time");
sdbusplus::asio::getProperty<uint64_t>(
*crow::connections::systemBus, "xyz.openbmc_project.State.Chassis",
@@ -1193,7 +1188,7 @@ inline void
uint64_t lastResetTime) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "D-BUS response error " << ec;
+ BMCWEB_LOG_DEBUG("D-BUS response error {}", ec);
return;
}
@@ -1222,7 +1217,7 @@ inline void
inline void getAutomaticRebootAttempts(
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
{
- BMCWEB_LOG_DEBUG << "Get Automatic Retry policy";
+ BMCWEB_LOG_DEBUG("Get Automatic Retry policy");
sdbusplus::asio::getAllProperties(
*crow::connections::systemBus, "xyz.openbmc_project.State.Host",
@@ -1235,7 +1230,7 @@ inline void getAutomaticRebootAttempts(
{
if (ec.value() != EBADR)
{
- BMCWEB_LOG_ERROR << "D-Bus responses error: " << ec;
+ BMCWEB_LOG_ERROR("D-Bus responses error: {}", ec);
messages::internalError(asyncResp->res);
}
return;
@@ -1279,7 +1274,7 @@ inline void getAutomaticRebootAttempts(
inline void
getAutomaticRetryPolicy(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
{
- BMCWEB_LOG_DEBUG << "Get Automatic Retry policy";
+ BMCWEB_LOG_DEBUG("Get Automatic Retry policy");
sdbusplus::asio::getProperty<bool>(
*crow::connections::systemBus, "xyz.openbmc_project.Settings",
@@ -1291,13 +1286,13 @@ inline void
{
if (ec.value() != EBADR)
{
- BMCWEB_LOG_ERROR << "D-Bus responses error: " << ec;
+ BMCWEB_LOG_ERROR("D-Bus responses error: {}", ec);
messages::internalError(asyncResp->res);
}
return;
}
- BMCWEB_LOG_DEBUG << "Auto Reboot: " << autoRebootEnabled;
+ BMCWEB_LOG_DEBUG("Auto Reboot: {}", autoRebootEnabled);
if (autoRebootEnabled)
{
asyncResp->res.jsonValue["Boot"]["AutomaticRetryConfig"] =
@@ -1332,7 +1327,7 @@ inline void setAutomaticRetryAttempts(
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
const uint32_t retryAttempts)
{
- BMCWEB_LOG_DEBUG << "Set Automatic Retry Attempts.";
+ BMCWEB_LOG_DEBUG("Set Automatic Retry Attempts.");
sdbusplus::asio::setProperty(
*crow::connections::systemBus, "xyz.openbmc_project.State.Host",
"/xyz/openbmc_project/state/host0",
@@ -1340,9 +1335,8 @@ inline void setAutomaticRetryAttempts(
retryAttempts, [asyncResp](const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_ERROR
- << "DBUS response error: Set setAutomaticRetryAttempts"
- << ec;
+ BMCWEB_LOG_ERROR(
+ "DBUS response error: Set setAutomaticRetryAttempts{}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -1383,7 +1377,7 @@ inline computer_system::PowerRestorePolicyTypes
inline void
getPowerRestorePolicy(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
{
- BMCWEB_LOG_DEBUG << "Get power restore policy";
+ BMCWEB_LOG_DEBUG("Get power restore policy");
sdbusplus::asio::getProperty<std::string>(
*crow::connections::systemBus, "xyz.openbmc_project.Settings",
@@ -1393,7 +1387,7 @@ inline void
const std::string& policy) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS response error " << ec;
+ BMCWEB_LOG_DEBUG("DBUS response error {}", ec);
return;
}
computer_system::PowerRestorePolicyTypes restore =
@@ -1418,7 +1412,7 @@ inline void
inline void
getStopBootOnFault(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
{
- BMCWEB_LOG_DEBUG << "Get Stop Boot On Fault";
+ BMCWEB_LOG_DEBUG("Get Stop Boot On Fault");
sdbusplus::asio::getProperty<bool>(
*crow::connections::systemBus, "xyz.openbmc_project.Settings",
@@ -1456,7 +1450,7 @@ inline void
inline void getTrustedModuleRequiredToBoot(
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
{
- BMCWEB_LOG_DEBUG << "Get TPM required to boot.";
+ BMCWEB_LOG_DEBUG("Get TPM required to boot.");
constexpr std::array<std::string_view, 1> interfaces = {
"xyz.openbmc_project.Control.TPM.Policy"};
dbus::utility::getSubTree(
@@ -1465,8 +1459,8 @@ inline void getTrustedModuleRequiredToBoot(
const dbus::utility::MapperGetSubTreeResponse& subtree) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS response error on TPM.Policy GetSubTree"
- << ec;
+ BMCWEB_LOG_DEBUG("DBUS response error on TPM.Policy GetSubTree{}",
+ ec);
// This is an optional D-Bus object so just return if
// error occurs
return;
@@ -1481,9 +1475,9 @@ inline void getTrustedModuleRequiredToBoot(
/* When there is more than one TPMEnable object... */
if (subtree.size() > 1)
{
- BMCWEB_LOG_DEBUG
- << "DBUS response has more than 1 TPM Enable object:"
- << subtree.size();
+ BMCWEB_LOG_DEBUG(
+ "DBUS response has more than 1 TPM Enable object:{}",
+ subtree.size());
// Throw an internal Error and return
messages::internalError(asyncResp->res);
return;
@@ -1493,7 +1487,7 @@ inline void getTrustedModuleRequiredToBoot(
// field
if (subtree[0].first.empty() || subtree[0].second.size() != 1)
{
- BMCWEB_LOG_DEBUG << "TPM.Policy mapper error!";
+ BMCWEB_LOG_DEBUG("TPM.Policy mapper error!");
messages::internalError(asyncResp->res);
return;
}
@@ -1509,8 +1503,8 @@ inline void getTrustedModuleRequiredToBoot(
bool tpmRequired) {
if (ec2)
{
- BMCWEB_LOG_DEBUG << "D-BUS response error on TPM.Policy Get"
- << ec2;
+ BMCWEB_LOG_DEBUG("D-BUS response error on TPM.Policy Get{}",
+ ec2);
messages::internalError(asyncResp->res);
return;
}
@@ -1543,7 +1537,7 @@ inline void getTrustedModuleRequiredToBoot(
inline void setTrustedModuleRequiredToBoot(
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp, const bool tpmRequired)
{
- BMCWEB_LOG_DEBUG << "Set TrustedModuleRequiredToBoot.";
+ BMCWEB_LOG_DEBUG("Set TrustedModuleRequiredToBoot.");
constexpr std::array<std::string_view, 1> interfaces = {
"xyz.openbmc_project.Control.TPM.Policy"};
dbus::utility::getSubTree(
@@ -1553,8 +1547,8 @@ inline void setTrustedModuleRequiredToBoot(
const dbus::utility::MapperGetSubTreeResponse& subtree) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS response error on TPM.Policy GetSubTree"
- << ec;
+ BMCWEB_LOG_DEBUG("DBUS response error on TPM.Policy GetSubTree{}",
+ ec);
messages::internalError(asyncResp->res);
return;
}
@@ -1568,9 +1562,9 @@ inline void setTrustedModuleRequiredToBoot(
/* When there is more than one TPMEnable object... */
if (subtree.size() > 1)
{
- BMCWEB_LOG_DEBUG
- << "DBUS response has more than 1 TPM Enable object:"
- << subtree.size();
+ BMCWEB_LOG_DEBUG(
+ "DBUS response has more than 1 TPM Enable object:{}",
+ subtree.size());
// Throw an internal Error and return
messages::internalError(asyncResp->res);
return;
@@ -1580,7 +1574,7 @@ inline void setTrustedModuleRequiredToBoot(
// field
if (subtree[0].first.empty() || subtree[0].second.size() != 1)
{
- BMCWEB_LOG_DEBUG << "TPM.Policy mapper error!";
+ BMCWEB_LOG_DEBUG("TPM.Policy mapper error!");
messages::internalError(asyncResp->res);
return;
}
@@ -1590,7 +1584,7 @@ inline void setTrustedModuleRequiredToBoot(
if (serv.empty())
{
- BMCWEB_LOG_DEBUG << "TPM.Policy service mapper error!";
+ BMCWEB_LOG_DEBUG("TPM.Policy service mapper error!");
messages::internalError(asyncResp->res);
return;
}
@@ -1602,13 +1596,13 @@ inline void setTrustedModuleRequiredToBoot(
[asyncResp](const boost::system::error_code& ec2) {
if (ec2)
{
- BMCWEB_LOG_DEBUG
- << "DBUS response error: Set TrustedModuleRequiredToBoot"
- << ec2;
+ BMCWEB_LOG_DEBUG(
+ "DBUS response error: Set TrustedModuleRequiredToBoot{}",
+ ec2);
messages::internalError(asyncResp->res);
return;
}
- BMCWEB_LOG_DEBUG << "Set TrustedModuleRequiredToBoot done.";
+ BMCWEB_LOG_DEBUG("Set TrustedModuleRequiredToBoot done.");
});
});
}
@@ -1631,7 +1625,7 @@ inline void setBootType(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
}
// Source target specified
- BMCWEB_LOG_DEBUG << "Boot type: " << *bootType;
+ BMCWEB_LOG_DEBUG("Boot type: {}", *bootType);
// Figure out which DBUS interface and property to use
if (*bootType == "Legacy")
{
@@ -1643,16 +1637,16 @@ inline void setBootType(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
}
else
{
- BMCWEB_LOG_DEBUG << "Invalid property value for "
- "BootSourceOverrideMode: "
- << *bootType;
+ BMCWEB_LOG_DEBUG("Invalid property value for "
+ "BootSourceOverrideMode: {}",
+ *bootType);
messages::propertyValueNotInList(asyncResp->res, *bootType,
"BootSourceOverrideMode");
return;
}
// Act on validated parameters
- BMCWEB_LOG_DEBUG << "DBUS boot type: " << bootTypeStr;
+ BMCWEB_LOG_DEBUG("DBUS boot type: {}", bootTypeStr);
sdbusplus::asio::setProperty(
*crow::connections::systemBus, "xyz.openbmc_project.Settings",
@@ -1661,7 +1655,7 @@ inline void setBootType(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
[asyncResp](const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS response error " << ec;
+ BMCWEB_LOG_DEBUG("DBUS response error {}", ec);
if (ec.value() == boost::asio::error::host_unreachable)
{
messages::resourceNotFound(asyncResp->res, "Set", "BootType");
@@ -1670,7 +1664,7 @@ inline void setBootType(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
messages::internalError(asyncResp->res);
return;
}
- BMCWEB_LOG_DEBUG << "Boot type update done.";
+ BMCWEB_LOG_DEBUG("Boot type update done.");
});
}
@@ -1690,7 +1684,7 @@ inline void setBootEnable(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
return;
}
// Source target specified
- BMCWEB_LOG_DEBUG << "Boot enable: " << *bootEnable;
+ BMCWEB_LOG_DEBUG("Boot enable: {}", *bootEnable);
bool bootOverrideEnable = false;
bool bootOverridePersistent = false;
@@ -1711,16 +1705,16 @@ inline void setBootEnable(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
}
else
{
- BMCWEB_LOG_DEBUG
- << "Invalid property value for BootSourceOverrideEnabled: "
- << *bootEnable;
+ BMCWEB_LOG_DEBUG(
+ "Invalid property value for BootSourceOverrideEnabled: {}",
+ *bootEnable);
messages::propertyValueNotInList(asyncResp->res, *bootEnable,
"BootSourceOverrideEnabled");
return;
}
// Act on validated parameters
- BMCWEB_LOG_DEBUG << "DBUS boot override enable: " << bootOverrideEnable;
+ BMCWEB_LOG_DEBUG("DBUS boot override enable: {}", bootOverrideEnable);
sdbusplus::asio::setProperty(
*crow::connections::systemBus, "xyz.openbmc_project.Settings",
@@ -1729,11 +1723,11 @@ inline void setBootEnable(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
[asyncResp](const boost::system::error_code& ec2) {
if (ec2)
{
- BMCWEB_LOG_DEBUG << "DBUS response error " << ec2;
+ BMCWEB_LOG_DEBUG("DBUS response error {}", ec2);
messages::internalError(asyncResp->res);
return;
}
- BMCWEB_LOG_DEBUG << "Boot override enable update done.";
+ BMCWEB_LOG_DEBUG("Boot override enable update done.");
});
if (!bootOverrideEnable)
@@ -1743,8 +1737,8 @@ inline void setBootEnable(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
// In case boot override is enabled we need to set correct value for the
// 'one_time' enable DBus interface
- BMCWEB_LOG_DEBUG << "DBUS boot override persistent: "
- << bootOverridePersistent;
+ BMCWEB_LOG_DEBUG("DBUS boot override persistent: {}",
+ bootOverridePersistent);
sdbusplus::asio::setProperty(
*crow::connections::systemBus, "xyz.openbmc_project.Settings",
@@ -1753,11 +1747,11 @@ inline void setBootEnable(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
[asyncResp](const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS response error " << ec;
+ BMCWEB_LOG_DEBUG("DBUS response error {}", ec);
messages::internalError(asyncResp->res);
return;
}
- BMCWEB_LOG_DEBUG << "Boot one_time update done.";
+ BMCWEB_LOG_DEBUG("Boot one_time update done.");
});
}
@@ -1782,22 +1776,22 @@ inline void
}
// Source target specified
- BMCWEB_LOG_DEBUG << "Boot source: " << *bootSource;
+ BMCWEB_LOG_DEBUG("Boot source: {}", *bootSource);
// Figure out which DBUS interface and property to use
if (assignBootParameters(asyncResp, *bootSource, bootSourceStr,
bootModeStr) != 0)
{
- BMCWEB_LOG_DEBUG
- << "Invalid property value for BootSourceOverrideTarget: "
- << *bootSource;
+ BMCWEB_LOG_DEBUG(
+ "Invalid property value for BootSourceOverrideTarget: {}",
+ *bootSource);
messages::propertyValueNotInList(asyncResp->res, *bootSource,
"BootSourceTargetOverride");
return;
}
// Act on validated parameters
- BMCWEB_LOG_DEBUG << "DBUS boot source: " << bootSourceStr;
- BMCWEB_LOG_DEBUG << "DBUS boot mode: " << bootModeStr;
+ BMCWEB_LOG_DEBUG("DBUS boot source: {}", bootSourceStr);
+ BMCWEB_LOG_DEBUG("DBUS boot mode: {}", bootModeStr);
sdbusplus::asio::setProperty(
*crow::connections::systemBus, "xyz.openbmc_project.Settings",
@@ -1806,11 +1800,11 @@ inline void
[asyncResp](const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS response error " << ec;
+ BMCWEB_LOG_DEBUG("DBUS response error {}", ec);
messages::internalError(asyncResp->res);
return;
}
- BMCWEB_LOG_DEBUG << "Boot source update done.";
+ BMCWEB_LOG_DEBUG("Boot source update done.");
});
sdbusplus::asio::setProperty(
@@ -1820,11 +1814,11 @@ inline void
[asyncResp](const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS response error " << ec;
+ BMCWEB_LOG_DEBUG("DBUS response error {}", ec);
messages::internalError(asyncResp->res);
return;
}
- BMCWEB_LOG_DEBUG << "Boot mode update done.";
+ BMCWEB_LOG_DEBUG("Boot mode update done.");
});
}
@@ -1845,7 +1839,7 @@ inline void
const std::optional<std::string>& bootType,
const std::optional<std::string>& bootEnable)
{
- BMCWEB_LOG_DEBUG << "Set boot information.";
+ BMCWEB_LOG_DEBUG("Set boot information.");
setBootModeOrSource(asyncResp, bootSource);
setBootType(asyncResp, bootType);
@@ -1872,13 +1866,13 @@ inline void setAssetTag(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
const dbus::utility::MapperGetSubTreeResponse& subtree) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "D-Bus response error on GetSubTree " << ec;
+ BMCWEB_LOG_DEBUG("D-Bus response error on GetSubTree {}", ec);
messages::internalError(asyncResp->res);
return;
}
if (subtree.empty())
{
- BMCWEB_LOG_DEBUG << "Can't find system D-Bus object!";
+ BMCWEB_LOG_DEBUG("Can't find system D-Bus object!");
messages::internalError(asyncResp->res);
return;
}
@@ -1886,13 +1880,13 @@ inline void setAssetTag(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
// Throw an error if there is more than 1
if (subtree.size() > 1)
{
- BMCWEB_LOG_DEBUG << "Found more than 1 system D-Bus object!";
+ BMCWEB_LOG_DEBUG("Found more than 1 system D-Bus object!");
messages::internalError(asyncResp->res);
return;
}
if (subtree[0].first.empty() || subtree[0].second.size() != 1)
{
- BMCWEB_LOG_DEBUG << "Asset Tag Set mapper error!";
+ BMCWEB_LOG_DEBUG("Asset Tag Set mapper error!");
messages::internalError(asyncResp->res);
return;
}
@@ -1902,7 +1896,7 @@ inline void setAssetTag(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
if (service.empty())
{
- BMCWEB_LOG_DEBUG << "Asset Tag Set service mapper error!";
+ BMCWEB_LOG_DEBUG("Asset Tag Set service mapper error!");
messages::internalError(asyncResp->res);
return;
}
@@ -1913,8 +1907,8 @@ inline void setAssetTag(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
assetTag, [asyncResp](const boost::system::error_code& ec2) {
if (ec2)
{
- BMCWEB_LOG_DEBUG << "D-Bus response error on AssetTag Set "
- << ec2;
+ BMCWEB_LOG_DEBUG("D-Bus response error on AssetTag Set {}",
+ ec2);
messages::internalError(asyncResp->res);
return;
}
@@ -1958,13 +1952,13 @@ inline std::optional<bool>
inline void setStopBootOnFault(const std::shared_ptr<bmcweb::AsyncResp>& aResp,
const std::string& stopBootOnFault)
{
- BMCWEB_LOG_DEBUG << "Set Stop Boot On Fault.";
+ BMCWEB_LOG_DEBUG("Set Stop Boot On Fault.");
std::optional<bool> stopBootEnabled = validstopBootOnFault(stopBootOnFault);
if (!stopBootEnabled)
{
- BMCWEB_LOG_DEBUG << "Invalid property value for StopBootOnFault: "
- << stopBootOnFault;
+ BMCWEB_LOG_DEBUG("Invalid property value for StopBootOnFault: {}",
+ stopBootOnFault);
messages::propertyValueNotInList(aResp->res, stopBootOnFault,
"StopBootOnFault");
return;
@@ -1999,7 +1993,7 @@ inline void
setAutomaticRetry(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
const std::string& automaticRetryConfig)
{
- BMCWEB_LOG_DEBUG << "Set Automatic Retry.";
+ BMCWEB_LOG_DEBUG("Set Automatic Retry.");
// OpenBMC only supports "Disabled" and "RetryAttempts".
bool autoRebootEnabled = false;
@@ -2014,8 +2008,8 @@ inline void
}
else
{
- BMCWEB_LOG_DEBUG << "Invalid property value for AutomaticRetryConfig: "
- << automaticRetryConfig;
+ BMCWEB_LOG_DEBUG("Invalid property value for AutomaticRetryConfig: {}",
+ automaticRetryConfig);
messages::propertyValueNotInList(asyncResp->res, automaticRetryConfig,
"AutomaticRetryConfig");
return;
@@ -2063,7 +2057,7 @@ inline void
setPowerRestorePolicy(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
std::string_view policy)
{
- BMCWEB_LOG_DEBUG << "Set power restore policy.";
+ BMCWEB_LOG_DEBUG("Set power restore policy.");
std::string powerRestorePolicy = dbusPowerRestorePolicyFromRedfish(policy);
@@ -2097,7 +2091,7 @@ inline void
*/
inline void getProvisioningStatus(std::shared_ptr<bmcweb::AsyncResp> asyncResp)
{
- BMCWEB_LOG_DEBUG << "Get OEM information.";
+ BMCWEB_LOG_DEBUG("Get OEM information.");
sdbusplus::asio::getAllProperties(
*crow::connections::systemBus, "xyz.openbmc_project.PFR.Manager",
"/xyz/openbmc_project/pfr", "xyz.openbmc_project.PFR.Attributes",
@@ -2111,7 +2105,7 @@ inline void getProvisioningStatus(std::shared_ptr<bmcweb::AsyncResp> asyncResp)
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS response error " << ec;
+ BMCWEB_LOG_DEBUG("DBUS response error {}", ec);
// not an error, don't have to have the interface
oemPFR["ProvisioningStatus"] = "NotProvisioned";
return;
@@ -2132,7 +2126,7 @@ inline void getProvisioningStatus(std::shared_ptr<bmcweb::AsyncResp> asyncResp)
if ((provState == nullptr) || (lockState == nullptr))
{
- BMCWEB_LOG_DEBUG << "Unable to get PFR attributes.";
+ BMCWEB_LOG_DEBUG("Unable to get PFR attributes.");
messages::internalError(asyncResp->res);
return;
}
@@ -2191,7 +2185,7 @@ inline void
else
{
// Any other values would be invalid
- BMCWEB_LOG_DEBUG << "PowerMode value was not valid: " << modeValue;
+ BMCWEB_LOG_DEBUG("PowerMode value was not valid: {}", modeValue);
messages::internalError(asyncResp->res);
}
}
@@ -2205,7 +2199,7 @@ inline void
*/
inline void getPowerMode(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
{
- BMCWEB_LOG_DEBUG << "Get power mode.";
+ BMCWEB_LOG_DEBUG("Get power mode.");
// Get Power Mode object path:
constexpr std::array<std::string_view, 1> interfaces = {
@@ -2216,8 +2210,8 @@ inline void getPowerMode(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
const dbus::utility::MapperGetSubTreeResponse& subtree) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS response error on Power.Mode GetSubTree "
- << ec;
+ BMCWEB_LOG_DEBUG("DBUS response error on Power.Mode GetSubTree {}",
+ ec);
// This is an optional D-Bus object so just return if
// error occurs
return;
@@ -2232,15 +2226,15 @@ inline void getPowerMode(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
{
// More then one PowerMode object is not supported and is an
// error
- BMCWEB_LOG_DEBUG
- << "Found more than 1 system D-Bus Power.Mode objects: "
- << subtree.size();
+ BMCWEB_LOG_DEBUG(
+ "Found more than 1 system D-Bus Power.Mode objects: {}",
+ subtree.size());
messages::internalError(asyncResp->res);
return;
}
if ((subtree[0].first.empty()) || (subtree[0].second.size() != 1))
{
- BMCWEB_LOG_DEBUG << "Power.Mode mapper error!";
+ BMCWEB_LOG_DEBUG("Power.Mode mapper error!");
messages::internalError(asyncResp->res);
return;
}
@@ -2248,7 +2242,7 @@ inline void getPowerMode(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
const std::string& service = subtree[0].second.begin()->first;
if (service.empty())
{
- BMCWEB_LOG_DEBUG << "Power.Mode service mapper error!";
+ BMCWEB_LOG_DEBUG("Power.Mode service mapper error!");
messages::internalError(asyncResp->res);
return;
}
@@ -2260,8 +2254,8 @@ inline void getPowerMode(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
const std::string& pmode) {
if (ec2)
{
- BMCWEB_LOG_DEBUG << "DBUS response error on PowerMode Get: "
- << ec2;
+ BMCWEB_LOG_DEBUG("DBUS response error on PowerMode Get: {}",
+ ec2);
messages::internalError(asyncResp->res);
return;
}
@@ -2269,7 +2263,7 @@ inline void getPowerMode(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
asyncResp->res.jsonValue["PowerMode@Redfish.AllowableValues"] = {
"Static", "MaximumPerformance", "PowerSaving"};
- BMCWEB_LOG_DEBUG << "Current power mode: " << pmode;
+ BMCWEB_LOG_DEBUG("Current power mode: {}", pmode);
translatePowerMode(asyncResp, pmode);
});
});
@@ -2322,7 +2316,7 @@ inline std::string
inline void setPowerMode(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
const std::string& pmode)
{
- BMCWEB_LOG_DEBUG << "Set power mode.";
+ BMCWEB_LOG_DEBUG("Set power mode.");
std::string powerMode = validatePowerMode(asyncResp, pmode);
if (powerMode.empty())
@@ -2340,8 +2334,8 @@ inline void setPowerMode(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
const dbus::utility::MapperGetSubTreeResponse& subtree) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS response error on Power.Mode GetSubTree "
- << ec;
+ BMCWEB_LOG_DEBUG("DBUS response error on Power.Mode GetSubTree {}",
+ ec);
// This is an optional D-Bus object, but user attempted to patch
messages::internalError(asyncResp->res);
return;
@@ -2357,15 +2351,15 @@ inline void setPowerMode(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
{
// More then one PowerMode object is not supported and is an
// error
- BMCWEB_LOG_DEBUG
- << "Found more than 1 system D-Bus Power.Mode objects: "
- << subtree.size();
+ BMCWEB_LOG_DEBUG(
+ "Found more than 1 system D-Bus Power.Mode objects: {}",
+ subtree.size());
messages::internalError(asyncResp->res);
return;
}
if ((subtree[0].first.empty()) || (subtree[0].second.size() != 1))
{
- BMCWEB_LOG_DEBUG << "Power.Mode mapper error!";
+ BMCWEB_LOG_DEBUG("Power.Mode mapper error!");
messages::internalError(asyncResp->res);
return;
}
@@ -2373,13 +2367,12 @@ inline void setPowerMode(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
const std::string& service = subtree[0].second.begin()->first;
if (service.empty())
{
- BMCWEB_LOG_DEBUG << "Power.Mode service mapper error!";
+ BMCWEB_LOG_DEBUG("Power.Mode service mapper error!");
messages::internalError(asyncResp->res);
return;
}
- BMCWEB_LOG_DEBUG << "Setting power mode(" << powerMode << ") -> "
- << path;
+ BMCWEB_LOG_DEBUG("Setting power mode({}) -> {}", powerMode, path);
// Set the Power Mode property
sdbusplus::asio::setProperty(
@@ -2466,7 +2459,7 @@ inline std::string rfToDbusWDTTimeOutAct(const std::string& rfAction)
inline void
getHostWatchdogTimer(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
{
- BMCWEB_LOG_DEBUG << "Get host watchodg";
+ BMCWEB_LOG_DEBUG("Get host watchodg");
sdbusplus::asio::getAllProperties(
*crow::connections::systemBus, "xyz.openbmc_project.Watchdog",
"/xyz/openbmc_project/watchdog/host0",
@@ -2476,11 +2469,11 @@ inline void
if (ec)
{
// watchdog service is stopped
- BMCWEB_LOG_DEBUG << "DBUS response error " << ec;
+ BMCWEB_LOG_DEBUG("DBUS response error {}", ec);
return;
}
- BMCWEB_LOG_DEBUG << "Got " << properties.size() << " wdt prop.";
+ BMCWEB_LOG_DEBUG("Got {} wdt prop.", properties.size());
nlohmann::json& hostWatchdogTimer =
asyncResp->res.jsonValue["HostWatchdogTimer"];
@@ -2534,7 +2527,7 @@ inline void
const std::optional<bool> wdtEnable,
const std::optional<std::string>& wdtTimeOutAction)
{
- BMCWEB_LOG_DEBUG << "Set host watchdog";
+ BMCWEB_LOG_DEBUG("Set host watchdog");
if (wdtTimeOutAction)
{
@@ -2542,8 +2535,8 @@ inline void
// check if TimeOut Action is Valid
if (wdtTimeOutActStr.empty())
{
- BMCWEB_LOG_DEBUG << "Unsupported value for TimeoutAction: "
- << *wdtTimeOutAction;
+ BMCWEB_LOG_DEBUG("Unsupported value for TimeoutAction: {}",
+ *wdtTimeOutAction);
messages::propertyValueNotInList(asyncResp->res, *wdtTimeOutAction,
"TimeoutAction");
return;
@@ -2556,7 +2549,7 @@ inline void
wdtTimeOutActStr, [asyncResp](const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS response error " << ec;
+ BMCWEB_LOG_DEBUG("DBUS response error {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -2572,7 +2565,7 @@ inline void
[asyncResp](const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS response error " << ec;
+ BMCWEB_LOG_DEBUG("DBUS response error {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -2655,7 +2648,7 @@ inline bool
inline void
getIdlePowerSaver(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
{
- BMCWEB_LOG_DEBUG << "Get idle power saver parameters";
+ BMCWEB_LOG_DEBUG("Get idle power saver parameters");
// Get IdlePowerSaver object path:
constexpr std::array<std::string_view, 1> interfaces = {
@@ -2666,9 +2659,9 @@ inline void
const dbus::utility::MapperGetSubTreeResponse& subtree) {
if (ec)
{
- BMCWEB_LOG_DEBUG
- << "DBUS response error on Power.IdlePowerSaver GetSubTree "
- << ec;
+ BMCWEB_LOG_DEBUG(
+ "DBUS response error on Power.IdlePowerSaver GetSubTree {}",
+ ec);
messages::internalError(asyncResp->res);
return;
}
@@ -2676,22 +2669,22 @@ inline void
{
// This is an optional interface so just return
// if there is no instance found
- BMCWEB_LOG_DEBUG << "No instances found";
+ BMCWEB_LOG_DEBUG("No instances found");
return;
}
if (subtree.size() > 1)
{
// More then one PowerIdlePowerSaver object is not supported and
// is an error
- BMCWEB_LOG_DEBUG << "Found more than 1 system D-Bus "
- "Power.IdlePowerSaver objects: "
- << subtree.size();
+ BMCWEB_LOG_DEBUG("Found more than 1 system D-Bus "
+ "Power.IdlePowerSaver objects: {}",
+ subtree.size());
messages::internalError(asyncResp->res);
return;
}
if ((subtree[0].first.empty()) || (subtree[0].second.size() != 1))
{
- BMCWEB_LOG_DEBUG << "Power.IdlePowerSaver mapper error!";
+ BMCWEB_LOG_DEBUG("Power.IdlePowerSaver mapper error!");
messages::internalError(asyncResp->res);
return;
}
@@ -2699,7 +2692,7 @@ inline void
const std::string& service = subtree[0].second.begin()->first;
if (service.empty())
{
- BMCWEB_LOG_DEBUG << "Power.IdlePowerSaver service mapper error!";
+ BMCWEB_LOG_DEBUG("Power.IdlePowerSaver service mapper error!");
messages::internalError(asyncResp->res);
return;
}
@@ -2712,8 +2705,8 @@ inline void
const dbus::utility::DBusPropertiesMap& properties) {
if (ec2)
{
- BMCWEB_LOG_ERROR
- << "DBUS response error on IdlePowerSaver GetAll: " << ec2;
+ BMCWEB_LOG_ERROR(
+ "DBUS response error on IdlePowerSaver GetAll: {}", ec2);
messages::internalError(asyncResp->res);
return;
}
@@ -2726,7 +2719,7 @@ inline void
});
});
- BMCWEB_LOG_DEBUG << "EXIT: Get idle power saver parameters";
+ BMCWEB_LOG_DEBUG("EXIT: Get idle power saver parameters");
}
/**
@@ -2752,7 +2745,7 @@ inline void
const std::optional<uint8_t> ipsExitUtil,
const std::optional<uint64_t> ipsExitTime)
{
- BMCWEB_LOG_DEBUG << "Set idle power saver properties";
+ BMCWEB_LOG_DEBUG("Set idle power saver properties");
// Get IdlePowerSaver object path:
constexpr std::array<std::string_view, 1> interfaces = {
@@ -2764,9 +2757,9 @@ inline void
const dbus::utility::MapperGetSubTreeResponse& subtree) {
if (ec)
{
- BMCWEB_LOG_DEBUG
- << "DBUS response error on Power.IdlePowerSaver GetSubTree "
- << ec;
+ BMCWEB_LOG_DEBUG(
+ "DBUS response error on Power.IdlePowerSaver GetSubTree {}",
+ ec);
messages::internalError(asyncResp->res);
return;
}
@@ -2781,15 +2774,15 @@ inline void
{
// More then one PowerIdlePowerSaver object is not supported and
// is an error
- BMCWEB_LOG_DEBUG
- << "Found more than 1 system D-Bus Power.IdlePowerSaver objects: "
- << subtree.size();
+ BMCWEB_LOG_DEBUG(
+ "Found more than 1 system D-Bus Power.IdlePowerSaver objects: {}",
+ subtree.size());
messages::internalError(asyncResp->res);
return;
}
if ((subtree[0].first.empty()) || (subtree[0].second.size() != 1))
{
- BMCWEB_LOG_DEBUG << "Power.IdlePowerSaver mapper error!";
+ BMCWEB_LOG_DEBUG("Power.IdlePowerSaver mapper error!");
messages::internalError(asyncResp->res);
return;
}
@@ -2797,7 +2790,7 @@ inline void
const std::string& service = subtree[0].second.begin()->first;
if (service.empty())
{
- BMCWEB_LOG_DEBUG << "Power.IdlePowerSaver service mapper error!";
+ BMCWEB_LOG_DEBUG("Power.IdlePowerSaver service mapper error!");
messages::internalError(asyncResp->res);
return;
}
@@ -2813,7 +2806,7 @@ inline void
*ipsEnable, [asyncResp](const boost::system::error_code& ec2) {
if (ec2)
{
- BMCWEB_LOG_DEBUG << "DBUS response error " << ec2;
+ BMCWEB_LOG_DEBUG("DBUS response error {}", ec2);
messages::internalError(asyncResp->res);
return;
}
@@ -2828,7 +2821,7 @@ inline void
[asyncResp](const boost::system::error_code& ec2) {
if (ec2)
{
- BMCWEB_LOG_DEBUG << "DBUS response error " << ec2;
+ BMCWEB_LOG_DEBUG("DBUS response error {}", ec2);
messages::internalError(asyncResp->res);
return;
}
@@ -2845,7 +2838,7 @@ inline void
[asyncResp](const boost::system::error_code& ec2) {
if (ec2)
{
- BMCWEB_LOG_DEBUG << "DBUS response error " << ec2;
+ BMCWEB_LOG_DEBUG("DBUS response error {}", ec2);
messages::internalError(asyncResp->res);
return;
}
@@ -2860,7 +2853,7 @@ inline void
[asyncResp](const boost::system::error_code& ec2) {
if (ec2)
{
- BMCWEB_LOG_DEBUG << "DBUS response error " << ec2;
+ BMCWEB_LOG_DEBUG("DBUS response error {}", ec2);
messages::internalError(asyncResp->res);
return;
}
@@ -2877,7 +2870,7 @@ inline void
[asyncResp](const boost::system::error_code& ec2) {
if (ec2)
{
- BMCWEB_LOG_DEBUG << "DBUS response error " << ec2;
+ BMCWEB_LOG_DEBUG("DBUS response error {}", ec2);
messages::internalError(asyncResp->res);
return;
}
@@ -2885,7 +2878,7 @@ inline void
}
});
- BMCWEB_LOG_DEBUG << "EXIT: Set idle power saver parameters";
+ BMCWEB_LOG_DEBUG("EXIT: Set idle power saver parameters");
}
inline void handleComputerSystemCollectionHead(
@@ -2943,17 +2936,17 @@ inline void handleComputerSystemCollectionGet(
auto val = asyncResp->res.jsonValue.find("Members@odata.count");
if (val == asyncResp->res.jsonValue.end())
{
- BMCWEB_LOG_CRITICAL << "Count wasn't found??";
+ BMCWEB_LOG_CRITICAL("Count wasn't found??");
return;
}
uint64_t* count = val->get_ptr<uint64_t*>();
if (count == nullptr)
{
- BMCWEB_LOG_CRITICAL << "Count wasn't found??";
+ BMCWEB_LOG_CRITICAL("Count wasn't found??");
return;
}
*count = *count + 1;
- BMCWEB_LOG_DEBUG << "Hypervisor is available";
+ BMCWEB_LOG_DEBUG("Hypervisor is available");
nlohmann::json& ifaceArray2 = asyncResp->res.jsonValue["Members"];
nlohmann::json::object_t hypervisor;
hypervisor["@odata.id"] = "/redfish/v1/Systems/hypervisor";
@@ -2976,7 +2969,7 @@ inline void doNMI(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
[asyncResp](const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_ERROR << " Bad D-Bus request error: " << ec;
+ BMCWEB_LOG_ERROR(" Bad D-Bus request error: {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -3001,7 +2994,7 @@ inline void handleSystemActionResetError(const boost::system::error_code& ec,
if (eMsg.get_error() == nullptr)
{
- BMCWEB_LOG_ERROR << "D-Bus response error: " << ec;
+ BMCWEB_LOG_ERROR("D-Bus response error: {}", ec);
messages::internalError(res);
return;
}
@@ -3015,13 +3008,13 @@ inline void handleSystemActionResetError(const boost::system::error_code& ec,
(errorMessage ==
std::string_view("xyz.openbmc_project.State.Host.Error.BMCNotReady")))
{
- BMCWEB_LOG_DEBUG << "BMC not ready, operation not allowed right now";
+ BMCWEB_LOG_DEBUG("BMC not ready, operation not allowed right now");
messages::serviceTemporarilyUnavailable(res, "10");
return;
}
- BMCWEB_LOG_ERROR << "System Action Reset transition fail " << ec
- << " sdbusplus:" << errorMessage;
+ BMCWEB_LOG_ERROR("System Action Reset transition fail {} sdbusplus:{}", ec,
+ errorMessage);
messages::internalError(res);
}
diff --git a/redfish-core/lib/task.hpp b/redfish-core/lib/task.hpp
index 050b75c4db..8a5c30b769 100644
--- a/redfish-core/lib/task.hpp
+++ b/redfish-core/lib/task.hpp
@@ -265,7 +265,7 @@ struct TaskData : std::enable_shared_from_this<TaskData>
}
else
{
- BMCWEB_LOG_INFO << "sendTaskEvent: No events to send";
+ BMCWEB_LOG_INFO("sendTaskEvent: No events to send");
}
}
diff --git a/redfish-core/lib/telemetry_service.hpp b/redfish-core/lib/telemetry_service.hpp
index 9cc5ccbf96..42e66c9a0e 100644
--- a/redfish-core/lib/telemetry_service.hpp
+++ b/redfish-core/lib/telemetry_service.hpp
@@ -48,7 +48,7 @@ inline void handleTelemetryServiceGet(
}
if (ec)
{
- BMCWEB_LOG_ERROR << "respHandler DBus error " << ec;
+ BMCWEB_LOG_ERROR("respHandler DBus error {}", ec);
messages::internalError(asyncResp->res);
return;
}
diff --git a/redfish-core/lib/thermal_subsystem.hpp b/redfish-core/lib/thermal_subsystem.hpp
index 804b849ea0..92e623eaa7 100644
--- a/redfish-core/lib/thermal_subsystem.hpp
+++ b/redfish-core/lib/thermal_subsystem.hpp
@@ -22,7 +22,7 @@ inline void doThermalSubsystemCollection(
{
if (!validChassisPath)
{
- BMCWEB_LOG_WARNING << "Not a valid chassis ID" << chassisId;
+ BMCWEB_LOG_WARNING("Not a valid chassis ID{}", chassisId);
messages::resourceNotFound(asyncResp->res, "Chassis", chassisId);
return;
}
diff --git a/redfish-core/lib/trigger.hpp b/redfish-core/lib/trigger.hpp
index cd1b60f438..48e348ec60 100644
--- a/redfish-core/lib/trigger.hpp
+++ b/redfish-core/lib/trigger.hpp
@@ -678,7 +678,7 @@ inline void afterCreateTrigger(
if (ec)
{
messages::internalError(asyncResp->res);
- BMCWEB_LOG_ERROR << "respHandler DBus error " << ec;
+ BMCWEB_LOG_ERROR("respHandler DBus error {}", ec);
return;
}
@@ -687,8 +687,8 @@ inline void afterCreateTrigger(
if (!triggerId)
{
messages::internalError(asyncResp->res);
- BMCWEB_LOG_ERROR << "Unknown data returned by "
- "AddTrigger DBus method";
+ BMCWEB_LOG_ERROR("Unknown data returned by "
+ "AddTrigger DBus method");
return;
}
@@ -791,8 +791,8 @@ inline std::optional<nlohmann::json> getMetricReportDefinitions(
if (reportId.empty())
{
{
- BMCWEB_LOG_ERROR << "Property Reports contains invalid value: "
- << path.str;
+ BMCWEB_LOG_ERROR("Property Reports contains invalid value: {}",
+ path.str);
return std::nullopt;
}
}
@@ -848,8 +848,8 @@ inline bool fillTrigger(
getTriggerActions(*triggerActions);
if (!redfishTriggerActions)
{
- BMCWEB_LOG_ERROR
- << "Property TriggerActions is invalid in Trigger: " << id;
+ BMCWEB_LOG_ERROR(
+ "Property TriggerActions is invalid in Trigger: {}", id);
return false;
}
json["TriggerActions"] = *redfishTriggerActions;
@@ -861,8 +861,7 @@ inline bool fillTrigger(
getMetricReportDefinitions(*reports);
if (!linkedReports)
{
- BMCWEB_LOG_ERROR << "Property Reports is invalid in Trigger: "
- << id;
+ BMCWEB_LOG_ERROR("Property Reports is invalid in Trigger: {}", id);
return false;
}
json["Links"]["MetricReportDefinitions"] = *linkedReports;
@@ -877,10 +876,9 @@ inline bool fillTrigger(
if (!discreteTriggers)
{
- BMCWEB_LOG_ERROR
- << "Property Thresholds is invalid for discrete "
- "triggers in Trigger: "
- << id;
+ BMCWEB_LOG_ERROR("Property Thresholds is invalid for discrete "
+ "triggers in Trigger: {}",
+ id);
return false;
}
@@ -896,10 +894,9 @@ inline bool fillTrigger(
if (!numericThresholds)
{
- BMCWEB_LOG_ERROR
- << "Property Thresholds is invalid for numeric "
- "thresholds in Trigger: "
- << id;
+ BMCWEB_LOG_ERROR("Property Thresholds is invalid for numeric "
+ "thresholds in Trigger: {}",
+ id);
return false;
}
@@ -1012,7 +1009,7 @@ inline void requestRoutesTrigger(App& app)
}
if (ec)
{
- BMCWEB_LOG_ERROR << "respHandler DBus error " << ec;
+ BMCWEB_LOG_ERROR("respHandler DBus error {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -1046,7 +1043,7 @@ inline void requestRoutesTrigger(App& app)
if (ec)
{
- BMCWEB_LOG_ERROR << "respHandler DBus error " << ec;
+ BMCWEB_LOG_ERROR("respHandler DBus error {}", ec);
messages::internalError(asyncResp->res);
return;
}
diff --git a/redfish-core/lib/update_service.hpp b/redfish-core/lib/update_service.hpp
index 357c04770b..3e75425ee5 100644
--- a/redfish-core/lib/update_service.hpp
+++ b/redfish-core/lib/update_service.hpp
@@ -63,7 +63,7 @@ inline static void cleanUp()
inline static void activateImage(const std::string& objPath,
const std::string& service)
{
- BMCWEB_LOG_DEBUG << "Activate image for " << objPath << " " << service;
+ BMCWEB_LOG_DEBUG("Activate image for {} {}", objPath, service);
sdbusplus::asio::setProperty(
*crow::connections::systemBus, service, objPath,
"xyz.openbmc_project.Software.Activation", "RequestedActivation",
@@ -71,8 +71,8 @@ inline static void activateImage(const std::string& objPath,
[](const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "error_code = " << ec;
- BMCWEB_LOG_DEBUG << "error msg = " << ec.message();
+ BMCWEB_LOG_DEBUG("error_code = {}", ec);
+ BMCWEB_LOG_DEBUG("error msg = {}", ec.message());
}
});
}
@@ -89,10 +89,10 @@ static void
m.read(objPath, interfacesProperties);
- BMCWEB_LOG_DEBUG << "obj path = " << objPath.str;
+ BMCWEB_LOG_DEBUG("obj path = {}", objPath.str);
for (const auto& interface : interfacesProperties)
{
- BMCWEB_LOG_DEBUG << "interface = " << interface.first;
+ BMCWEB_LOG_DEBUG("interface = {}", interface.first);
if (interface.first == "xyz.openbmc_project.Software.Activation")
{
@@ -108,8 +108,8 @@ static void
objInfo) mutable {
if (ec)
{
- BMCWEB_LOG_DEBUG << "error_code = " << ec;
- BMCWEB_LOG_DEBUG << "error msg = " << ec.message();
+ BMCWEB_LOG_DEBUG("error_code = {}", ec);
+ BMCWEB_LOG_DEBUG("error msg = {}", ec.message());
if (asyncResp)
{
messages::internalError(asyncResp->res);
@@ -120,8 +120,7 @@ static void
// Ensure we only got one service back
if (objInfo.size() != 1)
{
- BMCWEB_LOG_ERROR << "Invalid Object Size "
- << objInfo.size();
+ BMCWEB_LOG_ERROR("Invalid Object Size {}", objInfo.size());
if (asyncResp)
{
messages::internalError(asyncResp->res);
@@ -295,12 +294,11 @@ static void monitorForSoftwareAvailable(
// expected, we were canceled before the timer completed.
return;
}
- BMCWEB_LOG_ERROR
- << "Timed out waiting for firmware object being created";
- BMCWEB_LOG_ERROR << "FW image may has already been uploaded to server";
+ BMCWEB_LOG_ERROR("Timed out waiting for firmware object being created");
+ BMCWEB_LOG_ERROR("FW image may has already been uploaded to server");
if (ec)
{
- BMCWEB_LOG_ERROR << "Async_wait failed" << ec;
+ BMCWEB_LOG_ERROR("Async_wait failed{}", ec);
return;
}
if (asyncResp)
@@ -310,7 +308,7 @@ static void monitorForSoftwareAvailable(
});
task::Payload payload(req);
auto callback = [asyncResp, payload](sdbusplus::message_t& m) mutable {
- BMCWEB_LOG_DEBUG << "Match fired";
+ BMCWEB_LOG_DEBUG("Match fired");
softwareInterfaceAdded(asyncResp, m, std::move(payload));
};
@@ -332,7 +330,7 @@ static void monitorForSoftwareAvailable(
interfacesProperties;
sdbusplus::message::object_path objPath;
m.read(objPath, interfacesProperties);
- BMCWEB_LOG_DEBUG << "obj path = " << objPath.str;
+ BMCWEB_LOG_DEBUG("obj path = {}", objPath.str);
for (const std::pair<std::string, dbus::utility::DBusPropertiesMap>&
interface : interfacesProperties)
{
@@ -423,7 +421,7 @@ inline void requestRoutesUpdateServiceActionsSimpleUpdate(App& app)
std::optional<std::string> transferProtocol;
std::string imageURI;
- BMCWEB_LOG_DEBUG << "Enter UpdateService.SimpleUpdate doPost";
+ BMCWEB_LOG_DEBUG("Enter UpdateService.SimpleUpdate doPost");
// User can pass in both TransferProtocol and ImageURI parameters or
// they can pass in just the ImageURI with the transfer protocol
@@ -434,8 +432,7 @@ inline void requestRoutesUpdateServiceActionsSimpleUpdate(App& app)
if (!json_util::readJsonAction(req, asyncResp->res, "TransferProtocol",
transferProtocol, "ImageURI", imageURI))
{
- BMCWEB_LOG_DEBUG
- << "Missing TransferProtocol or ImageURI parameter";
+ BMCWEB_LOG_DEBUG("Missing TransferProtocol or ImageURI parameter");
return;
}
if (!transferProtocol)
@@ -449,22 +446,21 @@ inline void requestRoutesUpdateServiceActionsSimpleUpdate(App& app)
messages::actionParameterValueTypeError(
asyncResp->res, imageURI, "ImageURI",
"UpdateService.SimpleUpdate");
- BMCWEB_LOG_ERROR << "ImageURI missing transfer protocol: "
- << imageURI;
+ BMCWEB_LOG_ERROR("ImageURI missing transfer protocol: {}",
+ imageURI);
return;
}
transferProtocol = imageURI.substr(0, separator);
// Ensure protocol is upper case for a common comparison path
// below
boost::to_upper(*transferProtocol);
- BMCWEB_LOG_DEBUG << "Encoded transfer protocol "
- << *transferProtocol;
+ BMCWEB_LOG_DEBUG("Encoded transfer protocol {}", *transferProtocol);
// Adjust imageURI to not have the protocol on it for parsing
// below
// ex. tftp://1.1.1.1/myfile.bin -> 1.1.1.1/myfile.bin
imageURI = imageURI.substr(separator + 3);
- BMCWEB_LOG_DEBUG << "Adjusted imageUri " << imageURI;
+ BMCWEB_LOG_DEBUG("Adjusted imageUri {}", imageURI);
}
// OpenBMC currently only supports TFTP
@@ -473,8 +469,8 @@ inline void requestRoutesUpdateServiceActionsSimpleUpdate(App& app)
messages::actionParameterNotSupported(asyncResp->res,
"TransferProtocol",
"UpdateService.SimpleUpdate");
- BMCWEB_LOG_ERROR << "Request incorrect protocol parameter: "
- << *transferProtocol;
+ BMCWEB_LOG_ERROR("Request incorrect protocol parameter: {}",
+ *transferProtocol);
return;
}
@@ -486,13 +482,13 @@ inline void requestRoutesUpdateServiceActionsSimpleUpdate(App& app)
messages::actionParameterValueTypeError(
asyncResp->res, imageURI, "ImageURI",
"UpdateService.SimpleUpdate");
- BMCWEB_LOG_ERROR << "Invalid ImageURI: " << imageURI;
+ BMCWEB_LOG_ERROR("Invalid ImageURI: {}", imageURI);
return;
}
std::string tftpServer = imageURI.substr(0, separator);
std::string fwFile = imageURI.substr(separator + 1);
- BMCWEB_LOG_DEBUG << "Server: " << tftpServer + " File: " << fwFile;
+ BMCWEB_LOG_DEBUG("Server: {}{}", tftpServer + " File: ", fwFile);
// Setup callback for when new software detected
// Give TFTP 10 minutes to complete
@@ -514,19 +510,19 @@ inline void requestRoutesUpdateServiceActionsSimpleUpdate(App& app)
{
// messages::internalError(asyncResp->res);
cleanUp();
- BMCWEB_LOG_DEBUG << "error_code = " << ec;
- BMCWEB_LOG_DEBUG << "error msg = " << ec.message();
+ BMCWEB_LOG_DEBUG("error_code = {}", ec);
+ BMCWEB_LOG_DEBUG("error msg = {}", ec.message());
}
else
{
- BMCWEB_LOG_DEBUG << "Call to DownloaViaTFTP Success";
+ BMCWEB_LOG_DEBUG("Call to DownloaViaTFTP Success");
}
},
"xyz.openbmc_project.Software.Download",
"/xyz/openbmc_project/software", "xyz.openbmc_project.Common.TFTP",
"DownloadViaTFTP", fwFile, tftpServer);
- BMCWEB_LOG_DEBUG << "Exit UpdateService.SimpleUpdate doPost";
+ BMCWEB_LOG_DEBUG("Exit UpdateService.SimpleUpdate doPost");
});
}
@@ -534,7 +530,7 @@ inline void uploadImageFile(crow::Response& res, std::string_view body)
{
std::filesystem::path filepath("/tmp/images/" + bmcweb::getRandomUUID());
- BMCWEB_LOG_DEBUG << "Writing file to " << filepath;
+ BMCWEB_LOG_DEBUG("Writing file to {}", filepath.string());
std::ofstream out(filepath, std::ofstream::out | std::ofstream::binary |
std::ofstream::trunc);
// set the permission of the file to 640
@@ -566,8 +562,8 @@ inline void setApplyTime(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
}
else
{
- BMCWEB_LOG_INFO
- << "ApplyTime value is not in the list of acceptable values";
+ BMCWEB_LOG_INFO(
+ "ApplyTime value is not in the list of acceptable values");
messages::propertyValueNotInList(asyncResp->res, applyTime,
"ApplyTime");
return;
@@ -581,7 +577,7 @@ inline void setApplyTime(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
applyTimeNewVal, [asyncResp](const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_ERROR << "D-Bus responses error: " << ec;
+ BMCWEB_LOG_ERROR("D-Bus responses error: {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -602,10 +598,10 @@ inline void
formpart.fields.find("Content-Disposition");
if (it == formpart.fields.end())
{
- BMCWEB_LOG_ERROR << "Couldn't find Content-Disposition";
+ BMCWEB_LOG_ERROR("Couldn't find Content-Disposition");
return;
}
- BMCWEB_LOG_INFO << "Parsing value " << it->value();
+ BMCWEB_LOG_INFO("Parsing value {}", it->value());
// The construction parameters of param_list must start with `;`
size_t index = it->value().find(';');
@@ -656,7 +652,7 @@ inline void
if (uploadData == nullptr)
{
- BMCWEB_LOG_ERROR << "Upload data is NULL";
+ BMCWEB_LOG_ERROR("Upload data is NULL");
messages::propertyMissing(asyncResp->res, "UpdateFile");
return;
}
@@ -681,7 +677,7 @@ inline void
}
std::string_view contentType = req.getHeaderValue("Content-Type");
- BMCWEB_LOG_DEBUG << "doPost: contentType=" << contentType;
+ BMCWEB_LOG_DEBUG("doPost: contentType={}", contentType);
// Make sure that content type is application/octet-stream or
// multipart/form-data
@@ -705,8 +701,8 @@ inline void
if (ec != ParserError::PARSER_SUCCESS)
{
// handle error
- BMCWEB_LOG_ERROR << "MIME parse failed, ec : "
- << static_cast<int>(ec);
+ BMCWEB_LOG_ERROR("MIME parse failed, ec : {}",
+ static_cast<int>(ec));
messages::internalError(asyncResp->res);
return;
}
@@ -714,7 +710,7 @@ inline void
}
else
{
- BMCWEB_LOG_DEBUG << "Bad content type specified:" << contentType;
+ BMCWEB_LOG_DEBUG("Bad content type specified:{}", contentType);
asyncResp->res.result(boost::beast::http::status::bad_request);
}
}
@@ -768,7 +764,7 @@ inline void requestRoutesUpdateService(App& app)
const std::string& applyTime) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS response error " << ec;
+ BMCWEB_LOG_DEBUG("DBUS response error {}", ec);
messages::internalError(asyncResp->res);
return;
}
@@ -799,7 +795,7 @@ inline void requestRoutesUpdateService(App& app)
{
return;
}
- BMCWEB_LOG_DEBUG << "doPatch...";
+ BMCWEB_LOG_DEBUG("doPatch...");
std::optional<nlohmann::json> pushUriOptions;
if (!json_util::readJsonPatch(req, asyncResp->res, "HttpPushUriOptions",
@@ -890,7 +886,7 @@ inline static void
}
else
{
- BMCWEB_LOG_ERROR << "Unknown software purpose " << purpose;
+ BMCWEB_LOG_ERROR("Unknown software purpose {}", purpose);
}
}
@@ -926,16 +922,16 @@ inline void
if (swInvPurpose == nullptr)
{
- BMCWEB_LOG_DEBUG << "Can't find property \"Purpose\"!";
+ BMCWEB_LOG_DEBUG("Can't find property \"Purpose\"!");
messages::internalError(asyncResp->res);
return;
}
- BMCWEB_LOG_DEBUG << "swInvPurpose = " << *swInvPurpose;
+ BMCWEB_LOG_DEBUG("swInvPurpose = {}", *swInvPurpose);
if (version == nullptr)
{
- BMCWEB_LOG_DEBUG << "Can't find property \"Version\"!";
+ BMCWEB_LOG_DEBUG("Can't find property \"Version\"!");
messages::internalError(asyncResp->res);
@@ -991,7 +987,7 @@ inline void requestRoutesSoftwareInventory(App& app)
[asyncResp,
swId](const boost::system::error_code& ec,
const dbus::utility::MapperGetSubTreeResponse& subtree) {
- BMCWEB_LOG_DEBUG << "doGet callback...";
+ BMCWEB_LOG_DEBUG("doGet callback...");
if (ec)
{
messages::internalError(asyncResp->res);
@@ -1022,7 +1018,7 @@ inline void requestRoutesSoftwareInventory(App& app)
}
if (!found)
{
- BMCWEB_LOG_WARNING << "Input swID " << *swId << " not found!";
+ BMCWEB_LOG_WARNING("Input swID {} not found!", *swId);
messages::resourceMissingAtURI(
asyncResp->res,
boost::urls::format(
diff --git a/redfish-core/lib/virtual_media.hpp b/redfish-core/lib/virtual_media.hpp
index 81af41fe72..e425cc188d 100644
--- a/redfish-core/lib/virtual_media.hpp
+++ b/redfish-core/lib/virtual_media.hpp
@@ -46,8 +46,7 @@ inline VmMode
const std::string& resName)
{
std::string thisPath = itemPath.filename();
- BMCWEB_LOG_DEBUG << "Filename: " << itemPath.str
- << ", ThisPath: " << thisPath;
+ BMCWEB_LOG_DEBUG("Filename: {}, ThisPath: {}", itemPath.str, thisPath);
if (thisPath.empty())
{
@@ -102,7 +101,7 @@ inline void
const dbus::utility::ManagedObjectType& subtree) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS response error";
+ BMCWEB_LOG_DEBUG("DBUS response error");
return;
}
@@ -117,7 +116,7 @@ inline void
}
}
- BMCWEB_LOG_DEBUG << "Parent item not found";
+ BMCWEB_LOG_DEBUG("Parent item not found");
asyncResp->res.result(boost::beast::http::status::not_found);
});
}
@@ -224,7 +223,7 @@ inline void
const bool* activeValue = std::get_if<bool>(&value);
if (activeValue == nullptr)
{
- BMCWEB_LOG_DEBUG << "Value Active not found";
+ BMCWEB_LOG_DEBUG("Value Active not found");
return;
}
asyncResp->res.jsonValue["Inserted"] = *activeValue;
@@ -272,7 +271,7 @@ inline void getVmResourceList(std::shared_ptr<bmcweb::AsyncResp> asyncResp,
const std::string& service,
const std::string& name)
{
- BMCWEB_LOG_DEBUG << "Get available Virtual Media resources.";
+ BMCWEB_LOG_DEBUG("Get available Virtual Media resources.");
sdbusplus::message::object_path objPath(
"/xyz/openbmc_project/VirtualMedia");
dbus::utility::getManagedObjects(
@@ -282,7 +281,7 @@ inline void getVmResourceList(std::shared_ptr<bmcweb::AsyncResp> asyncResp,
const dbus::utility::ManagedObjectType& subtree) {
if (ec)
{
- BMCWEB_LOG_DEBUG << "DBUS response error";
+ BMCWEB_LOG_DEBUG("DBUS response error");
return;
}
nlohmann::json& members = asyncResp->res.jsonValue["Members"];
@@ -344,7 +343,7 @@ inline void getVmData(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
const std::string& service, const std::string& name,
const std::string& resName)
{
- BMCWEB_LOG_DEBUG << "Get Virtual Media resource data.";
+ BMCWEB_LOG_DEBUG("Get Virtual Media resource data.");
findAndParseObject(service, resName, asyncResp,
std::bind_front(afterGetVmData, name));
@@ -601,7 +600,7 @@ inline void doMountVmLegacy(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
if (credentials.user().size() + credentials.password().size() + 2 >
secretLimit)
{
- BMCWEB_LOG_ERROR << "Credentials too long to handle";
+ BMCWEB_LOG_ERROR("Credentials too long to handle");
messages::unrecognizedRequestBody(asyncResp->res);
return;
}
@@ -625,7 +624,7 @@ inline void doMountVmLegacy(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
[asyncResp](const boost::system::error_code& ec, std::size_t) {
if (ec)
{
- BMCWEB_LOG_ERROR << "Failed to pass secret: " << ec;
+ BMCWEB_LOG_ERROR("Failed to pass secret: {}", ec);
messages::internalError(asyncResp->res);
}
});
@@ -636,12 +635,12 @@ inline void doMountVmLegacy(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
bool success) {
if (ec)
{
- BMCWEB_LOG_ERROR << "Bad D-Bus request error: " << ec;
+ BMCWEB_LOG_ERROR("Bad D-Bus request error: {}", ec);
messages::internalError(asyncResp->res);
}
else if (!success)
{
- BMCWEB_LOG_ERROR << "Service responded with error";
+ BMCWEB_LOG_ERROR("Service responded with error");
messages::generalError(asyncResp->res);
}
},
@@ -659,11 +658,11 @@ inline void validateParams(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
const std::string& resName,
InsertMediaActionParams& actionParams)
{
- BMCWEB_LOG_DEBUG << "Validation started";
+ BMCWEB_LOG_DEBUG("Validation started");
// required param imageUrl must not be empty
if (!actionParams.imageUrl)
{
- BMCWEB_LOG_ERROR << "Request action parameter Image is empty.";
+ BMCWEB_LOG_ERROR("Request action parameter Image is empty.");
messages::propertyValueFormatError(asyncResp->res, "<empty>", "Image");
@@ -673,8 +672,8 @@ inline void validateParams(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
// optional param inserted must be true
if ((actionParams.inserted != std::nullopt) && !*actionParams.inserted)
{
- BMCWEB_LOG_ERROR
- << "Request action optional parameter Inserted must be true.";
+ BMCWEB_LOG_ERROR(
+ "Request action optional parameter Inserted must be true.");
messages::actionParameterNotSupported(asyncResp->res, "Inserted",
"InsertMedia");
@@ -686,8 +685,8 @@ inline void validateParams(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
if ((actionParams.transferMethod != std::nullopt) &&
(*actionParams.transferMethod != "Stream"))
{
- BMCWEB_LOG_ERROR << "Request action optional parameter "
- "TransferMethod must be Stream.";
+ BMCWEB_LOG_ERROR("Request action optional parameter "
+ "TransferMethod must be Stream.");
messages::actionParameterNotSupported(asyncResp->res, "TransferMethod",
"InsertMedia");
@@ -711,9 +710,9 @@ inline void validateParams(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
// ImageUrl does not contain valid protocol type
if (*uriTransferProtocolType == TransferProtocol::invalid)
{
- BMCWEB_LOG_ERROR << "Request action parameter ImageUrl must "
- "contain specified protocol type from list: "
- "(smb, https).";
+ BMCWEB_LOG_ERROR("Request action parameter ImageUrl must "
+ "contain specified protocol type from list: "
+ "(smb, https).");
messages::resourceAtUriInUnknownFormat(asyncResp->res, *url);
@@ -723,9 +722,9 @@ inline void validateParams(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
// transferProtocolType should contain value from list
if (*paramTransferProtocolType == TransferProtocol::invalid)
{
- BMCWEB_LOG_ERROR << "Request action parameter TransferProtocolType "
- "must be provided with value from list: "
- "(CIFS, HTTPS).";
+ BMCWEB_LOG_ERROR("Request action parameter TransferProtocolType "
+ "must be provided with value from list: "
+ "(CIFS, HTTPS).");
messages::propertyValueNotInList(asyncResp->res,
*actionParams.transferProtocolType,
@@ -737,9 +736,9 @@ inline void validateParams(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
if ((uriTransferProtocolType == std::nullopt) &&
(paramTransferProtocolType == std::nullopt))
{
- BMCWEB_LOG_ERROR << "Request action parameter ImageUrl must "
- "contain specified protocol type or param "
- "TransferProtocolType must be provided.";
+ BMCWEB_LOG_ERROR("Request action parameter ImageUrl must "
+ "contain specified protocol type or param "
+ "TransferProtocolType must be provided.");
messages::resourceAtUriInUnknownFormat(asyncResp->res, *url);
@@ -753,10 +752,10 @@ inline void validateParams(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
// check if protocol is the same for URI and param
if (*paramTransferProtocolType != *uriTransferProtocolType)
{
- BMCWEB_LOG_ERROR << "Request action parameter "
- "TransferProtocolType must contain the "
- "same protocol type as protocol type "
- "provided with param imageUrl.";
+ BMCWEB_LOG_ERROR("Request action parameter "
+ "TransferProtocolType must contain the "
+ "same protocol type as protocol type "
+ "provided with param imageUrl.");
messages::actionParameterValueTypeError(
asyncResp->res, *actionParams.transferProtocolType,
@@ -805,7 +804,7 @@ inline void doEjectAction(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
[asyncResp](const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_ERROR << "Bad D-Bus request error: " << ec;
+ BMCWEB_LOG_ERROR("Bad D-Bus request error: {}", ec);
messages::internalError(asyncResp->res);
return;
@@ -820,7 +819,7 @@ inline void doEjectAction(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
[asyncResp](const boost::system::error_code& ec) {
if (ec)
{
- BMCWEB_LOG_ERROR << "Bad D-Bus request error: " << ec;
+ BMCWEB_LOG_ERROR("Bad D-Bus request error: {}", ec);
messages::internalError(asyncResp->res);
return;
@@ -869,14 +868,14 @@ inline void handleManagersVirtualMediaActionInsertPost(
const dbus::utility::MapperGetObject& getObjectType) mutable {
if (ec)
{
- BMCWEB_LOG_ERROR << "ObjectMapper::GetObject call failed: " << ec;
+ BMCWEB_LOG_ERROR("ObjectMapper::GetObject call failed: {}", ec);
messages::resourceNotFound(asyncResp->res, action, resName);
return;
}
std::string service = getObjectType.begin()->first;
- BMCWEB_LOG_DEBUG << "GetObjectType: " << service;
+ BMCWEB_LOG_DEBUG("GetObjectType: {}", service);
sdbusplus::message::object_path path(
"/xyz/openbmc_project/VirtualMedia");
@@ -888,8 +887,8 @@ inline void handleManagersVirtualMediaActionInsertPost(
if (ec2)
{
// Not possible in proxy mode
- BMCWEB_LOG_DEBUG << "InsertMedia not "
- "allowed in proxy mode";
+ BMCWEB_LOG_DEBUG("InsertMedia not "
+ "allowed in proxy mode");
messages::resourceNotFound(asyncResp->res, action, resName);
return;
@@ -904,7 +903,7 @@ inline void handleManagersVirtualMediaActionInsertPost(
return;
}
}
- BMCWEB_LOG_DEBUG << "Parent item not found";
+ BMCWEB_LOG_DEBUG("Parent item not found");
messages::resourceNotFound(asyncResp->res, "VirtualMedia", resName);
});
});
@@ -935,13 +934,13 @@ inline void handleManagersVirtualMediaActionEject(
const dbus::utility::MapperGetObject& getObjectType) {
if (ec2)
{
- BMCWEB_LOG_ERROR << "ObjectMapper::GetObject call failed: " << ec2;
+ BMCWEB_LOG_ERROR("ObjectMapper::GetObject call failed: {}", ec2);
messages::internalError(asyncResp->res);
return;
}
std::string service = getObjectType.begin()->first;
- BMCWEB_LOG_DEBUG << "GetObjectType: " << service;
+ BMCWEB_LOG_DEBUG("GetObjectType: {}", service);
sdbusplus::message::object_path path(
"/xyz/openbmc_project/VirtualMedia");
@@ -952,7 +951,7 @@ inline void handleManagersVirtualMediaActionEject(
const dbus::utility::ManagedObjectType& subtree) {
if (ec)
{
- BMCWEB_LOG_ERROR << "ObjectMapper : No Service found";
+ BMCWEB_LOG_ERROR("ObjectMapper : No Service found");
messages::resourceNotFound(asyncResp->res, action, resName);
return;
}
@@ -967,7 +966,7 @@ inline void handleManagersVirtualMediaActionEject(
return;
}
}
- BMCWEB_LOG_DEBUG << "Parent item not found";
+ BMCWEB_LOG_DEBUG("Parent item not found");
messages::resourceNotFound(asyncResp->res, "VirtualMedia", resName);
});
});
@@ -1001,13 +1000,13 @@ inline void handleManagersVirtualMediaCollectionGet(
const dbus::utility::MapperGetObject& getObjectType) {
if (ec)
{
- BMCWEB_LOG_ERROR << "ObjectMapper::GetObject call failed: " << ec;
+ BMCWEB_LOG_ERROR("ObjectMapper::GetObject call failed: {}", ec);
messages::internalError(asyncResp->res);
return;
}
std::string service = getObjectType.begin()->first;
- BMCWEB_LOG_DEBUG << "GetObjectType: " << service;
+ BMCWEB_LOG_DEBUG("GetObjectType: {}", service);
getVmResourceList(asyncResp, service, name);
});
@@ -1036,13 +1035,13 @@ inline void
const dbus::utility::MapperGetObject& getObjectType) {
if (ec)
{
- BMCWEB_LOG_ERROR << "ObjectMapper::GetObject call failed: " << ec;
+ BMCWEB_LOG_ERROR("ObjectMapper::GetObject call failed: {}", ec);
messages::internalError(asyncResp->res);
return;
}
std::string service = getObjectType.begin()->first;
- BMCWEB_LOG_DEBUG << "GetObjectType: " << service;
+ BMCWEB_LOG_DEBUG("GetObjectType: {}", service);
getVmData(asyncResp, service, name, resName);
});
diff --git a/redfish-core/src/error_messages.cpp b/redfish-core/src/error_messages.cpp
index 85aab34530..38f10c824d 100644
--- a/redfish-core/src/error_messages.cpp
+++ b/redfish-core/src/error_messages.cpp
@@ -51,16 +51,15 @@ static void addMessageToErrorJson(nlohmann::json& target,
auto messageIdIterator = message.find("MessageId");
if (messageIdIterator == message.end())
{
- BMCWEB_LOG_CRITICAL
- << "Attempt to add error message without MessageId";
+ BMCWEB_LOG_CRITICAL(
+ "Attempt to add error message without MessageId");
return;
}
auto messageFieldIterator = message.find("Message");
if (messageFieldIterator == message.end())
{
- BMCWEB_LOG_CRITICAL
- << "Attempt to add error message without Message";
+ BMCWEB_LOG_CRITICAL("Attempt to add error message without Message");
return;
}
error["code"] = *messageIdIterator;
@@ -282,9 +281,9 @@ nlohmann::json internalError()
void internalError(crow::Response& res, const std::source_location location)
{
- BMCWEB_LOG_CRITICAL << "Internal Error " << location.file_name() << "("
- << location.line() << ":" << location.column() << ") `"
- << location.function_name() << "`: ";
+ BMCWEB_LOG_CRITICAL("Internal Error {}({}:{}) `{}`: ", location.file_name(),
+ location.line(), location.column(),
+ location.function_name());
res.result(boost::beast::http::status::internal_server_error);
addMessageToErrorJson(res.jsonValue, internalError());
}
diff --git a/scripts/replace_logs.py b/scripts/replace_logs.py
new file mode 100755
index 0000000000..cc7f87ba67
--- /dev/null
+++ b/scripts/replace_logs.py
@@ -0,0 +1,100 @@
+#!/usr/bin/python3
+import os
+import re
+from subprocess import check_output
+
+"""
+This script is intended to aid in the replacement of bmcweb log lines from
+BMCWEB_LOG_CRITICAL << "foo" << arg;
+to the new fmt style form
+BMCWEB_LOG_CRITICAL("foo{}", arg);
+
+It is intended to be a 99% correct tool, and in some cases, some amount of
+manual intervention is required once the conversion has been done. Some
+things it doesn't handle:
+
+ptrs need to be wrapped in logPtr(). This script tries to do the common
+cases, but can't handle every one.
+
+types of boost::ip::tcp::endpoint/address needs .to_string() called on it
+in the args section
+
+arguments that were previously build by in-line operator+ construction of
+strings (for example "foo" + bar), need to be formatted in the arguments
+brace replacement language, (for example "foo{}", bar)
+
+After the script has been run, remember to reformat with clang-format
+
+This script will be removed Q2 2024
+"""
+
+
+SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__))
+
+files = check_output(
+ ["git", "-C", os.path.join(SCRIPT_DIR, ".."), "grep", "-l", "BMCWEB_LOG_"]
+)
+filenames = files.split(b"\n")
+
+
+for filename in filenames:
+ if not filename:
+ continue
+ with open(filename, "r") as filehandle:
+ contents = filehandle.read()
+
+ # Normalize all the log statements to a single line
+ new_contents = ""
+ replacing = False
+ for line in contents.splitlines():
+ match = re.match(r"\s+BMCWEB_LOG_", line)
+ if match:
+ replacing = True
+
+ if replacing and not match:
+ line = " " + line.lstrip()
+ if line.endswith(";"):
+ replacing = False
+ new_contents += line
+ if not replacing:
+ new_contents += "\n"
+ contents = new_contents
+
+ new_contents = ""
+ for line in contents.splitlines():
+ match = re.match(r"(\s+BMCWEB_LOG_[A-Z]+) <<", line)
+ if match:
+ logstring = ""
+ line = line.lstrip()
+ chevron_split = line.split("<<")
+ arguments = []
+ for log_piece in chevron_split[1:]:
+ if log_piece.endswith(";"):
+ log_piece = log_piece[:-1]
+ log_piece = log_piece.strip()
+ if (log_piece.startswith('"') and log_piece.endswith('"')) or (
+ log_piece.startswith("'") and log_piece.endswith("'")
+ ):
+ logstring += log_piece[1:-1]
+ else:
+ if log_piece == "this" or log_piece.startswith("&"):
+ log_piece = "logPtr({})".format(log_piece)
+ if log_piece == "self":
+ log_piece = "logPtr(self.get())"
+ arguments.append(log_piece)
+ logstring += "{}"
+ if logstring.endswith("\\n"):
+ logstring = logstring[:-2]
+
+ arguments.insert(0, '"' + logstring + '"')
+ argjoin = ", ".join(arguments)
+
+ line = match.group(1) + "(" + argjoin + ");"
+ new_contents += line + "\n"
+
+ contents = new_contents
+
+ with open(filename, "w") as filehandle:
+ filehandle.write(new_contents)
+
+print()
diff --git a/src/boost_asio.cpp b/src/boost_asio.cpp
index 53f2fd6945..9e9107487a 100644
--- a/src/boost_asio.cpp
+++ b/src/boost_asio.cpp
@@ -9,14 +9,14 @@ namespace boost
{
void throw_exception(const std::exception& e)
{
- BMCWEB_LOG_CRITICAL << "Boost exception thrown " << e.what();
+ BMCWEB_LOG_CRITICAL("Boost exception thrown {}", e.what());
std::terminate();
}
void throw_exception(const std::exception& e, const source_location& loc)
{
- BMCWEB_LOG_CRITICAL << "Boost exception thrown " << e.what() << " from "
- << loc;
+ BMCWEB_LOG_CRITICAL("Boost exception thrown {} from {}:{}", e.what(),
+ loc.file_name(), loc.line());
std::terminate();
}
} // namespace boost
diff --git a/src/webserver_main.cpp b/src/webserver_main.cpp
index 8150f460ad..67e2aaef04 100644
--- a/src/webserver_main.cpp
+++ b/src/webserver_main.cpp
@@ -39,25 +39,25 @@ inline void setupSocket(crow::App& app)
int listenFd = sd_listen_fds(0);
if (1 == listenFd)
{
- BMCWEB_LOG_INFO << "attempting systemd socket activation";
+ BMCWEB_LOG_INFO("attempting systemd socket activation");
if (sd_is_socket_inet(SD_LISTEN_FDS_START, AF_UNSPEC, SOCK_STREAM, 1,
0) != 0)
{
- BMCWEB_LOG_INFO << "Starting webserver on socket handle "
- << SD_LISTEN_FDS_START;
+ BMCWEB_LOG_INFO("Starting webserver on socket handle {}",
+ SD_LISTEN_FDS_START);
app.socket(SD_LISTEN_FDS_START);
}
else
{
- BMCWEB_LOG_INFO
- << "bad incoming socket, starting webserver on port "
- << defaultPort;
+ BMCWEB_LOG_INFO(
+ "bad incoming socket, starting webserver on port {}",
+ defaultPort);
app.port(defaultPort);
}
}
else
{
- BMCWEB_LOG_INFO << "Starting webserver on port " << defaultPort;
+ BMCWEB_LOG_INFO("Starting webserver on port {}", defaultPort);
app.port(defaultPort);
}
}
@@ -133,13 +133,13 @@ static int run()
int rc = redfish::EventServiceManager::startEventLogMonitor(*io);
if (rc != 0)
{
- BMCWEB_LOG_ERROR << "Redfish event handler setup failed...";
+ BMCWEB_LOG_ERROR("Redfish event handler setup failed...");
return rc;
}
#endif
#ifdef BMCWEB_ENABLE_SSL
- BMCWEB_LOG_INFO << "Start Hostname Monitor Service...";
+ BMCWEB_LOG_INFO("Start Hostname Monitor Service...");
crow::hostname_monitor::registerHostnameSignal();
#endif
@@ -161,12 +161,12 @@ int main(int /*argc*/, char** /*argv*/)
}
catch (const std::exception& e)
{
- BMCWEB_LOG_CRITICAL << "Threw exception to main: " << e.what();
+ BMCWEB_LOG_CRITICAL("Threw exception to main: {}", e.what());
return -1;
}
catch (...)
{
- BMCWEB_LOG_CRITICAL << "Threw exception to main";
+ BMCWEB_LOG_CRITICAL("Threw exception to main");
return -1;
}
}