Implement redfish LogService

This commit implements an optional LogService endpoint for debugging
CPUs over Redish.  It exposes both the ability to create a new log with
the LogImmediate action, as well as to pull a stored log using the
LogCollection schema.  This feature is disabled by default, and should
be enabled in the meta-x86 layer.

Change-Id: Ied1d5e263a0857e09cd9a24fddec9c11a4066cd2
Signed-off-by: Ed Tanous <ed.tanous@intel.com>
diff --git a/redfish-core/include/redfish.hpp b/redfish-core/include/redfish.hpp
index 76bed8b..0998634 100644
--- a/redfish-core/include/redfish.hpp
+++ b/redfish-core/include/redfish.hpp
@@ -18,6 +18,7 @@
 #include "../lib/account_service.hpp"
 #include "../lib/chassis.hpp"
 #include "../lib/ethernet.hpp"
+#include "../lib/log_services.hpp"
 #include "../lib/managers.hpp"
 #include "../lib/network_protocol.hpp"
 #include "../lib/redfish_sessions.hpp"
@@ -66,6 +67,18 @@
         nodes.emplace_back(std::make_unique<SoftwareInventory>(app));
         nodes.emplace_back(
             std::make_unique<VlanNetworkInterfaceCollection>(app));
+        nodes.emplace_back(std::make_unique<LogServiceCollection>(app));
+
+#ifdef BMCWEB_ENABLE_REDFISH_CPU_LOG
+        nodes.emplace_back(std::make_unique<CpuLogService>(app));
+        nodes.emplace_back(std::make_unique<CpuLogEntryCollection>(app));
+        nodes.emplace_back(std::make_unique<CpuLogEntry>(app));
+        nodes.emplace_back(std::make_unique<ImmediateCpuLog>(app));
+#ifdef BMCWEB_ENABLE_REDFISH_RAW_PECI
+        nodes.emplace_back(std::make_unique<SendRawPeci>(app));
+#endif // BMCWEB_ENABLE_REDFISH_RAW_PECI
+#endif // BMCWEB_ENABLE_REDFISH_CPU_LOG
+
         nodes.emplace_back(std::make_unique<SystemsCollection>(app));
         nodes.emplace_back(std::make_unique<Systems>(app));
         nodes.emplace_back(std::make_unique<SystemActionsReset>(app));