osaf/libs/core/mds/mds_log.cc |  42 ++++++++++++++++--------------------------
 1 files changed, 16 insertions(+), 26 deletions(-)


Use the va_list version of Buffer::Write() to avoid the need for formatting the
message into a temporary buffer.

diff --git a/osaf/libs/core/mds/mds_log.cc b/osaf/libs/core/mds/mds_log.cc
--- a/osaf/libs/core/mds/mds_log.cc
+++ b/osaf/libs/core/mds/mds_log.cc
@@ -46,12 +46,14 @@
 class MdsLog {
  public:
   static bool Init();
-  static void Log(base::LogMessage::Severity severity, const char *str);
+  static void Log(base::LogMessage::Severity severity, const char *fmt,
+                  va_list ap);
 
  private:
   MdsLog(const char* host_name, const char* app_name,
             uint32_t proc_id, const char* socket_name);
-  void LogInternal(base::LogMessage::Severity severity, const char *str);
+  void LogInternal(base::LogMessage::Severity severity, const char *fmt,
+                   va_list ap);
   static MdsLog* instance_;
   const base::LogMessage::HostName host_name_;
   const base::LogMessage::AppName app_name_;
@@ -121,11 +123,13 @@ bool MdsLog::Init() {
   return instance_ != nullptr;
 }
 
-void MdsLog::Log(base::LogMessage::Severity severity, const char *str) {
-  if (instance_ != nullptr) instance_->LogInternal(severity, str);
+void MdsLog::Log(base::LogMessage::Severity severity, const char *fmt,
+                 va_list ap) {
+  if (instance_ != nullptr) instance_->LogInternal(severity, fmt, ap);
 }
 
-void MdsLog::LogInternal(base::LogMessage::Severity severity, const char *str) 
{
+void MdsLog::LogInternal(base::LogMessage::Severity severity, const char *fmt,
+                         va_list ap) {
   uint64_t id = msg_id_++;
   base::Buffer<256> buffer;
   base::LogMessage::Write(base::LogMessage::Facility::kLocal0,
@@ -136,7 +140,8 @@ void MdsLog::LogInternal(base::LogMessag
                           proc_id_,
                           base::LogMessage::MsgId{std::to_string(id)},
                           {},
-                          str,
+                          fmt,
+                          ap,
                           &buffer);
   log_socket_.Send(buffer.data(), buffer.size());
 }
@@ -167,13 +172,10 @@ uint32_t mds_log_init(const char*) {
  
*******************************************************************************/
 void log_mds_critical(const char *fmt, ...) {
   if (gl_mds_log_level < NCSMDS_LC_CRITICAL) return;
-  char str[256];
   va_list ap;
-
   va_start(ap, fmt);
-  vsnprintf(str, sizeof(str), fmt, ap);
+  MdsLog::Log(base::LogMessage::Severity::kCrit, fmt, ap);
   va_end(ap);
-  MdsLog::Log(base::LogMessage::Severity::kCrit, str);
 }
 
 
/*******************************************************************************
@@ -186,13 +188,10 @@ void log_mds_critical(const char *fmt, .
  
*******************************************************************************/
 void log_mds_err(const char *fmt, ...) {
   if (gl_mds_log_level < NCSMDS_LC_ERR) return;
-  char str[256];
   va_list ap;
-
   va_start(ap, fmt);
-  vsnprintf(str, sizeof(str), fmt, ap);
+  MdsLog::Log(base::LogMessage::Severity::kErr, fmt, ap);
   va_end(ap);
-  MdsLog::Log(base::LogMessage::Severity::kErr, str);
 }
 
 
/*******************************************************************************
@@ -205,13 +204,10 @@ void log_mds_err(const char *fmt, ...) {
  
*******************************************************************************/
 void log_mds_notify(const char *fmt, ...) {
   if (gl_mds_log_level < NCSMDS_LC_NOTIFY) return;
-  char str[256];
   va_list ap;
-
   va_start(ap, fmt);
-  vsnprintf(str, sizeof(str), fmt, ap);
+  MdsLog::Log(base::LogMessage::Severity::kNotice, fmt, ap);
   va_end(ap);
-  MdsLog::Log(base::LogMessage::Severity::kNotice, str);
 }
 
 
/*******************************************************************************
@@ -224,13 +220,10 @@ void log_mds_notify(const char *fmt, ...
  
*******************************************************************************/
 void log_mds_info(const char *fmt, ...) {
   if (gl_mds_log_level < NCSMDS_LC_INFO) return;
-  char str[256];
   va_list ap;
-
   va_start(ap, fmt);
-  vsnprintf(str, sizeof(str), fmt, ap);
+  MdsLog::Log(base::LogMessage::Severity::kInfo, fmt, ap);
   va_end(ap);
-  MdsLog::Log(base::LogMessage::Severity::kInfo, str);
 }
 
 
/*******************************************************************************
@@ -244,11 +237,8 @@ void log_mds_info(const char *fmt, ...) 
  
*******************************************************************************/
 void log_mds_dbg(const char *fmt, ...) {
   if (gl_mds_log_level < NCSMDS_LC_DBG) return;
-  char str[256];
   va_list ap;
-
   va_start(ap, fmt);
-  vsnprintf(str, sizeof(str), fmt, ap);
+  MdsLog::Log(base::LogMessage::Severity::kDebug, fmt, ap);
   va_end(ap);
-  MdsLog::Log(base::LogMessage::Severity::kDebug, str);
 }

------------------------------------------------------------------------------
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today. http://sdm.link/xeonphi
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to