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