xref: /openbmc/phosphor-logging/lib/elog.cpp (revision 5bc26533)
1e0538848SWilliam A. Kennington III #include "config.h"
2e0538848SWilliam A. Kennington III 
3e0538848SWilliam A. Kennington III #include <phosphor-logging/elog.hpp>
4*5bc26533SArya K Padman #include <phosphor-logging/lg2.hpp>
52544b419SPatrick Williams 
6e0538848SWilliam A. Kennington III #include <stdexcept>
7e0538848SWilliam A. Kennington III 
8e0538848SWilliam A. Kennington III namespace phosphor
9e0538848SWilliam A. Kennington III {
10e0538848SWilliam A. Kennington III namespace logging
11e0538848SWilliam A. Kennington III {
12e0538848SWilliam A. Kennington III namespace details
13e0538848SWilliam A. Kennington III {
146ddbf69eSWilly Tu using namespace sdbusplus::server::xyz::openbmc_project::logging;
15e0538848SWilliam A. Kennington III 
_prepareMsg(const char * funcName)16e0538848SWilliam A. Kennington III auto _prepareMsg(const char* funcName)
17e0538848SWilliam A. Kennington III {
18e0538848SWilliam A. Kennington III     using phosphor::logging::log;
19e0538848SWilliam A. Kennington III     constexpr auto IFACE_INTERNAL(
20e0538848SWilliam A. Kennington III         "xyz.openbmc_project.Logging.Internal.Manager");
21e0538848SWilliam A. Kennington III 
22e0538848SWilliam A. Kennington III     // Transaction id is located at the end of the string separated by a period.
23e0538848SWilliam A. Kennington III 
24e0538848SWilliam A. Kennington III     auto b = sdbusplus::bus::new_default();
25e0538848SWilliam A. Kennington III 
26e0538848SWilliam A. Kennington III     auto m = b.new_method_call(BUSNAME_LOGGING, OBJ_INTERNAL, IFACE_INTERNAL,
27e0538848SWilliam A. Kennington III                                funcName);
28e0538848SWilliam A. Kennington III     return m;
29e0538848SWilliam A. Kennington III }
30e0538848SWilliam A. Kennington III 
commit(const char * name)31e0538848SWilliam A. Kennington III uint32_t commit(const char* name)
32e0538848SWilliam A. Kennington III {
33e0538848SWilliam A. Kennington III     auto msg = _prepareMsg("Commit");
34e0538848SWilliam A. Kennington III     uint64_t id = sdbusplus::server::transaction::get_id();
35e0538848SWilliam A. Kennington III     msg.append(id, name);
36e0538848SWilliam A. Kennington III     auto bus = sdbusplus::bus::new_default();
37e0538848SWilliam A. Kennington III     auto reply = bus.call(msg);
38e0538848SWilliam A. Kennington III     uint32_t entryID;
39e0538848SWilliam A. Kennington III     reply.read(entryID);
40e0538848SWilliam A. Kennington III     return entryID;
41e0538848SWilliam A. Kennington III }
42e0538848SWilliam A. Kennington III 
commit(const char * name,Entry::Level level)43e0538848SWilliam A. Kennington III uint32_t commit(const char* name, Entry::Level level)
44e0538848SWilliam A. Kennington III {
45e0538848SWilliam A. Kennington III     auto msg = _prepareMsg("CommitWithLvl");
46e0538848SWilliam A. Kennington III     uint64_t id = sdbusplus::server::transaction::get_id();
47e0538848SWilliam A. Kennington III     msg.append(id, name, static_cast<uint32_t>(level));
48e0538848SWilliam A. Kennington III     auto bus = sdbusplus::bus::new_default();
49e0538848SWilliam A. Kennington III     auto reply = bus.call(msg);
50e0538848SWilliam A. Kennington III     uint32_t entryID;
51e0538848SWilliam A. Kennington III     reply.read(entryID);
52e0538848SWilliam A. Kennington III     return entryID;
53e0538848SWilliam A. Kennington III }
54e0538848SWilliam A. Kennington III } // namespace details
55e0538848SWilliam A. Kennington III 
commit(std::string && name)56e0538848SWilliam A. Kennington III uint32_t commit(std::string&& name)
57e0538848SWilliam A. Kennington III {
58*5bc26533SArya K Padman     lg2::error("method is deprecated, use commit() with exception type");
59e0538848SWilliam A. Kennington III     return phosphor::logging::details::commit(name.c_str());
60e0538848SWilliam A. Kennington III }
61e0538848SWilliam A. Kennington III 
62e0538848SWilliam A. Kennington III } // namespace logging
63e0538848SWilliam A. Kennington III } // namespace phosphor
64