diff --git a/redfish-core/lib/account_service.hpp b/redfish-core/lib/account_service.hpp
index 9f2748d..9a45404 100644
--- a/redfish-core/lib/account_service.hpp
+++ b/redfish-core/lib/account_service.hpp
@@ -564,7 +564,7 @@
                              const dbus::utility::MapperGetObject& resp) {
         if (ec || resp.empty())
         {
-            BMCWEB_LOG_ERROR(
+            BMCWEB_LOG_WARNING(
                 "DBUS response error during getting of service name: {}", ec);
             LDAPConfigData empty{};
             callback(false, empty, ldapType);
@@ -581,7 +581,7 @@
             if (ec2)
             {
                 callback(false, confData, ldapType);
-                BMCWEB_LOG_ERROR("D-Bus responses error: {}", ec2);
+                BMCWEB_LOG_WARNING("D-Bus responses error: {}", ec2);
                 return;
             }
 
diff --git a/redfish-core/lib/log_services.hpp b/redfish-core/lib/log_services.hpp
index 9cb1fe0..e17169a 100644
--- a/redfish-core/lib/log_services.hpp
+++ b/redfish-core/lib/log_services.hpp
@@ -2079,7 +2079,7 @@
     std::filesystem::directory_iterator logPath(hostLoggerFilePath, ec);
     if (ec)
     {
-        BMCWEB_LOG_ERROR("{}", ec.message());
+        BMCWEB_LOG_WARNING("{}", ec.message());
         return false;
     }
     for (const std::filesystem::directory_entry& it : logPath)
@@ -2229,7 +2229,7 @@
         std::vector<std::filesystem::path> hostLoggerFiles;
         if (!getHostLoggerFiles(hostLoggerFolderPath, hostLoggerFiles))
         {
-            BMCWEB_LOG_ERROR("fail to get host log file path");
+            BMCWEB_LOG_DEBUG("Failed to get host log file path");
             return;
         }
         // If we weren't provided top and skip limits, use the defaults.
@@ -2315,7 +2315,7 @@
         std::vector<std::filesystem::path> hostLoggerFiles;
         if (!getHostLoggerFiles(hostLoggerFolderPath, hostLoggerFiles))
         {
-            BMCWEB_LOG_ERROR("fail to get host log file path");
+            BMCWEB_LOG_DEBUG("Failed to get host log file path");
             return;
         }
 
@@ -2470,7 +2470,7 @@
     ret = getJournalMetadata(journal, "SYSLOG_IDENTIFIER", syslogID);
     if (ret < 0)
     {
-        BMCWEB_LOG_ERROR("Failed to read SYSLOG_IDENTIFIER field: {}",
+        BMCWEB_LOG_DEBUG("Failed to read SYSLOG_IDENTIFIER field: {}",
                          strerror(-ret));
     }
     if (!syslogID.empty())
@@ -2492,7 +2492,7 @@
     ret = getJournalMetadata(journal, "PRIORITY", 10, severity);
     if (ret < 0)
     {
-        BMCWEB_LOG_ERROR("Failed to read PRIORITY field: {}", strerror(-ret));
+        BMCWEB_LOG_DEBUG("Failed to read PRIORITY field: {}", strerror(-ret));
     }
 
     // Get the Created time from the timestamp
diff --git a/redfish-core/lib/managers.hpp b/redfish-core/lib/managers.hpp
index a114d44..c51a586 100644
--- a/redfish-core/lib/managers.hpp
+++ b/redfish-core/lib/managers.hpp
@@ -326,7 +326,7 @@
         {
             configRoot["Profile"] = currentProfile;
         }
-        BMCWEB_LOG_ERROR("profile = {} !", currentProfile);
+        BMCWEB_LOG_DEBUG("profile = {} !", currentProfile);
 
         for (const auto& pathPair : managedObj)
         {
diff --git a/redfish-core/lib/update_service.hpp b/redfish-core/lib/update_service.hpp
index af2725a..b538806 100644
--- a/redfish-core/lib/update_service.hpp
+++ b/redfish-core/lib/update_service.hpp
@@ -888,7 +888,7 @@
     }
     else
     {
-        BMCWEB_LOG_ERROR("Unknown software purpose {}", purpose);
+        BMCWEB_LOG_DEBUG("Unknown software purpose {}", purpose);
     }
 }
 
