summaryrefslogtreecommitdiff
path: root/ace/Log_Record.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ace/Log_Record.cpp')
-rw-r--r--ace/Log_Record.cpp105
1 files changed, 63 insertions, 42 deletions
diff --git a/ace/Log_Record.cpp b/ace/Log_Record.cpp
index 11b24b7b8d2..2fed56760da 100644
--- a/ace/Log_Record.cpp
+++ b/ace/Log_Record.cpp
@@ -16,50 +16,58 @@
# include "ace/streams.h"
#endif /* ! ACE_LACKS_IOSTREAM_TOTALLY */
+#include "ace/OS_Memory.h"
+
ACE_RCSID(ace, Log_Record, "$Id$")
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
ACE_ALLOC_HOOK_DEFINE(ACE_Log_Record)
-const ACE_TCHAR *ACE_Log_Record::priority_names_[] =
+namespace
{
- ACE_LIB_TEXT ("LM_SHUTDOWN"),
- ACE_LIB_TEXT ("LM_TRACE"),
- ACE_LIB_TEXT ("LM_DEBUG"),
- ACE_LIB_TEXT ("LM_INFO"),
- ACE_LIB_TEXT ("LM_NOTICE"),
- ACE_LIB_TEXT ("LM_WARNING"),
- ACE_LIB_TEXT ("LM_STARTUP"),
- ACE_LIB_TEXT ("LM_ERROR"),
- ACE_LIB_TEXT ("LM_CRITICAL"),
- ACE_LIB_TEXT ("LM_ALERT"),
- ACE_LIB_TEXT ("LM_EMERGENCY"),
- ACE_LIB_TEXT ("LM_UNK(04000)"),
- ACE_LIB_TEXT ("LM_UNK(010000)"),
- ACE_LIB_TEXT ("LM_UNK(020000)"),
- ACE_LIB_TEXT ("LM_UNK(040000)"),
- ACE_LIB_TEXT ("LM_UNK(0100000)"),
- ACE_LIB_TEXT ("LM_UNK(0200000)"),
- ACE_LIB_TEXT ("LM_UNK(0400000)"),
- ACE_LIB_TEXT ("LM_UNK(01000000)"),
- ACE_LIB_TEXT ("LM_UNK(02000000)"),
- ACE_LIB_TEXT ("LM_UNK(04000000)"),
- ACE_LIB_TEXT ("LM_UNK(010000000)"),
- ACE_LIB_TEXT ("LM_UNK(020000000)"),
- ACE_LIB_TEXT ("LM_UNK(040000000)"),
- ACE_LIB_TEXT ("LM_UNK(0100000000)"),
- ACE_LIB_TEXT ("LM_UNK(0200000000)"),
- ACE_LIB_TEXT ("LM_UNK(0400000000)"),
- ACE_LIB_TEXT ("LM_UNK(01000000000)"),
- ACE_LIB_TEXT ("LM_UNK(02000000000)"),
- ACE_LIB_TEXT ("LM_UNK(04000000000)"),
- ACE_LIB_TEXT ("LM_UNK(010000000000)"),
- ACE_LIB_TEXT ("LM_UNK(020000000000)")
-};
+ // Symbolic names for the <ACE_Log_Priority> enumerators.
+ ACE_TCHAR const * ace_priority_names[] =
+ {
+ ACE_LIB_TEXT ("LM_SHUTDOWN"),
+ ACE_LIB_TEXT ("LM_TRACE"),
+ ACE_LIB_TEXT ("LM_DEBUG"),
+ ACE_LIB_TEXT ("LM_INFO"),
+ ACE_LIB_TEXT ("LM_NOTICE"),
+ ACE_LIB_TEXT ("LM_WARNING"),
+ ACE_LIB_TEXT ("LM_STARTUP"),
+ ACE_LIB_TEXT ("LM_ERROR"),
+ ACE_LIB_TEXT ("LM_CRITICAL"),
+ ACE_LIB_TEXT ("LM_ALERT"),
+ ACE_LIB_TEXT ("LM_EMERGENCY"),
+ ACE_LIB_TEXT ("LM_UNK(04000)"),
+ ACE_LIB_TEXT ("LM_UNK(010000)"),
+ ACE_LIB_TEXT ("LM_UNK(020000)"),
+ ACE_LIB_TEXT ("LM_UNK(040000)"),
+ ACE_LIB_TEXT ("LM_UNK(0100000)"),
+ ACE_LIB_TEXT ("LM_UNK(0200000)"),
+ ACE_LIB_TEXT ("LM_UNK(0400000)"),
+ ACE_LIB_TEXT ("LM_UNK(01000000)"),
+ ACE_LIB_TEXT ("LM_UNK(02000000)"),
+ ACE_LIB_TEXT ("LM_UNK(04000000)"),
+ ACE_LIB_TEXT ("LM_UNK(010000000)"),
+ ACE_LIB_TEXT ("LM_UNK(020000000)"),
+ ACE_LIB_TEXT ("LM_UNK(040000000)"),
+ ACE_LIB_TEXT ("LM_UNK(0100000000)"),
+ ACE_LIB_TEXT ("LM_UNK(0200000000)"),
+ ACE_LIB_TEXT ("LM_UNK(0400000000)"),
+ ACE_LIB_TEXT ("LM_UNK(01000000000)"),
+ ACE_LIB_TEXT ("LM_UNK(02000000000)"),
+ ACE_LIB_TEXT ("LM_UNK(04000000000)"),
+ ACE_LIB_TEXT ("LM_UNK(010000000000)"),
+ ACE_LIB_TEXT ("LM_UNK(020000000000)")
+ };
+}
const ACE_TCHAR *
ACE_Log_Record::priority_name (ACE_Log_Priority p)
{
- return ACE_Log_Record::priority_names_[ACE::log2 (p)];
+ return ace_priority_names[ACE::log2 (p)];
}
void
@@ -67,7 +75,7 @@ ACE_Log_Record::priority_name (ACE_Log_Priority p,
const ACE_TCHAR *name)
{
// Name must be a statically allocated string
- ACE_Log_Record::priority_names_[ACE::log2 (p)] = name;
+ ace_priority_names[ACE::log2 (p)] = name;
}
u_long
@@ -112,7 +120,7 @@ ACE_Log_Record::msg_data (const ACE_TCHAR *data)
{
// ACE_TRACE ("ACE_Log_Record::msg_data");
ACE_OS::strsncpy (this->msg_data_, data,
- (sizeof this->msg_data_ / sizeof (ACE_TCHAR)));
+ (MAXLOGMSGLEN / sizeof (ACE_TCHAR)));
this->round_up ();
}
@@ -126,6 +134,7 @@ ACE_Log_Record::ACE_Log_Record (ACE_Log_Priority lp,
pid_ (ACE_UINT32 (p))
{
// ACE_TRACE ("ACE_Log_Record::ACE_Log_Record");
+ ACE_NEW_NORETURN (this->msg_data_, ACE_TCHAR[MAXLOGMSGLEN]);
}
ACE_Log_Record::ACE_Log_Record (ACE_Log_Priority lp,
@@ -138,6 +147,7 @@ ACE_Log_Record::ACE_Log_Record (ACE_Log_Priority lp,
pid_ (ACE_UINT32 (p))
{
// ACE_TRACE ("ACE_Log_Record::ACE_Log_Record");
+ ACE_NEW_NORETURN (this->msg_data_, ACE_TCHAR[MAXLOGMSGLEN]);
}
void
@@ -145,7 +155,7 @@ ACE_Log_Record::round_up (void)
{
// ACE_TRACE ("ACE_Log_Record::round_up");
// Determine the length of the payload.
- size_t len = (sizeof (*this) - sizeof (this->msg_data_))
+ size_t len = (sizeof (*this) - MAXLOGMSGLEN)
+ (sizeof (ACE_TCHAR) * ((ACE_OS::strlen (this->msg_data_) + 1)));
// Round up to the alignment.
@@ -162,6 +172,7 @@ ACE_Log_Record::ACE_Log_Record (void)
pid_ (0)
{
// ACE_TRACE ("ACE_Log_Record::ACE_Log_Record");
+ ACE_NEW_NORETURN (this->msg_data_, ACE_TCHAR[MAXLOGMSGLEN]);
}
int
@@ -190,7 +201,7 @@ ACE_Log_Record::format_msg (const ACE_TCHAR host_name[],
|| ACE_BIT_ENABLED (verbose_flag,
ACE_Log_Msg::VERBOSE_LITE))
{
- time_t now = this->secs_;
+ time_t const now = this->secs_;
ACE_TCHAR ctp[26]; // 26 is a magic number...
if (ACE_OS::ctime_r (&now, ctp, sizeof ctp) == 0)
@@ -245,7 +256,9 @@ ACE_Log_Record::print (const ACE_TCHAR host_name[],
u_long verbose_flag,
FILE *fp)
{
- ACE_TCHAR verbose_msg [MAXVERBOSELOGMSGLEN];
+ ACE_TCHAR* verbose_msg = 0;
+ ACE_NEW_RETURN (verbose_msg,ACE_TCHAR[MAXVERBOSELOGMSGLEN], -1);
+
int result = this->format_msg (host_name,
verbose_flag,
verbose_msg);
@@ -266,6 +279,8 @@ ACE_Log_Record::print (const ACE_TCHAR host_name[],
}
}
+ delete[] verbose_msg;
+
return result;
}
@@ -276,8 +291,10 @@ ACE_Log_Record::print (const ACE_TCHAR host_name[],
u_long verbose_flag,
ACE_OSTREAM_TYPE &s)
{
- ACE_TCHAR verbose_msg [MAXVERBOSELOGMSGLEN];
- int result = this->format_msg (host_name, verbose_flag, verbose_msg);
+ ACE_TCHAR* verbose_msg = 0;
+ ACE_NEW_RETURN (verbose_msg,ACE_TCHAR[MAXVERBOSELOGMSGLEN], -1);
+
+ int const result = this->format_msg (host_name, verbose_flag, verbose_msg);
if (result == 0)
{
@@ -286,7 +303,11 @@ ACE_Log_Record::print (const ACE_TCHAR host_name[],
s.flush ();
}
+ delete[] verbose_msg;
+
return result;
}
#endif /* ! ACE_LACKS_IOSTREAM_TOTALLY */
+
+ACE_END_VERSIONED_NAMESPACE_DECL