#include <Logger_Impl.h>
Inheritance diagram for ASSA::Logger_Impl:
Public Member Functions | |
Logger_Impl () | |
virtual | ~Logger_Impl () |
void | enable_group (Group g_) |
void | disable_group (Group g_) |
void | enable_groups (u_long g_) |
void | disable_groups (u_long g_) |
void | enable_all_groups (void) |
void | disable_all_groups (void) |
bool | group_enabled (Group g_) const |
void | enable_timestamp (void) |
void | disable_timestamp (void) |
bool | timestamp_enabled (void) const |
void | set_timezone (int zone_) |
void | set_indent_step (u_short step_) |
u_short | get_indent_step (void) const |
virtual int | log_open (u_long groups_) |
Open StdErr Logger. | |
virtual int | log_open (const char *logfname_, u_long groups_, u_long maxsize_) |
Open File Logger. | |
virtual int | log_open (const char *appname_, const char *logfname_, u_long groups_, u_long maxsize_, Reactor *reactor_) |
Open connection with Log Server. | |
virtual int | log_close (void)=0 |
virtual void | log_resync (void) |
virtual int | log_msg (Group g_, size_t indent_level_, const string &func_name_, size_t expected_sz_, const char *fmt_, va_list)=0 |
virtual int | log_func (Group g_, size_t indent_level_, const string &func_name_, marker_t type_)=0 |
Static Public Attributes | |
static const unsigned int | LOGGER_MAXLINE = 6660 |
Maximum length of the formatted message. | |
Protected Member Functions | |
virtual u_short | add_timestamp (ostream &sink_) |
virtual u_short | indent_func_name (ostream &sink_, const string &funcname_, size_t indent_level_, marker_t type_) |
char * | format_msg (size_t expected_sz_, const char *fmt_, va_list vap_, bool &release_) |
Format and put the message in the buffer. | |
Protected Attributes | |
u_short | m_indent_step |
Indentation step. | |
u_long | m_groups |
Enabled groups. | |
string | m_logfname |
Log file name. | |
bool | m_tmflg |
Timestamp on/off flag. | |
int | m_tz |
Timezone: 0-GMT, 1-Local. | |
Static Protected Attributes | |
static char | m_msgbuf [LOGGER_MAXLINE] |
Static buffer for formatted message. |
Definition at line 37 of file Logger_Impl.h.
|
Definition at line 149 of file Logger_Impl.h. 00150 : m_indent_step (1), 00151 m_groups (0), 00152 m_tmflg (false), 00153 m_tz (1) 00154 { 00155 /* no-op */ 00156 }
|
|
Definition at line 49 of file Logger_Impl.h.
|
|
Definition at line 27 of file Logger_Impl.cpp. References ASSA::TimeVal::fmtString(), ASSA::TimeVal::gettimeofday(), m_tz, ASSA::TimeVal::msec(), timestamp_enabled(), and ASSA::TimeVal::tz(). Referenced by ASSA::StdOutLogger::log_func(), ASSA::RemoteLogger::log_func(), ASSA::FileLogger::log_func(), ASSA::StdOutLogger::log_msg(), ASSA::RemoteLogger::log_msg(), and ASSA::FileLogger::log_msg(). 00028 { 00029 /*--- 'DD/MM/CC HH:MM:SS.MMMM ' - 23 chars ---*/ 00030 u_short bytecount = 0; 00031 00032 if (timestamp_enabled ()) { 00033 TimeVal tv = TimeVal::gettimeofday (); 00034 tv.tz (m_tz); 00035 sink_ << tv.fmtString ("%m/%d/%G %T") << '.'; 00036 char oldfill = sink_.fill('0'); 00037 sink_ << std::setw (3) << (tv.msec () % 1000000)/1000 << ' '; 00038 sink_.fill (oldfill); 00039 bytecount = 23; 00040 } 00041 return bytecount; 00042 }
|
|
Definition at line 58 of file Logger_Impl.h. References m_groups. Referenced by ASSA::Logger::disable_all_groups(). 00058 { m_groups = 0; }
|
|
Definition at line 52 of file Logger_Impl.h. References m_groups. Referenced by ASSA::Logger::disable_group(). 00052 { m_groups &= ~g_; }
|
|
Definition at line 55 of file Logger_Impl.h. References m_groups. Referenced by ASSA::Logger::disable_groups(). 00055 { m_groups &= ~g_; }
|
|
Definition at line 63 of file Logger_Impl.h. References m_tmflg. Referenced by ASSA::Logger::disable_timestamp(). 00063 { m_tmflg = false; }
|
|
Definition at line 57 of file Logger_Impl.h. References ASSA::ALL, and m_groups. Referenced by ASSA::Logger::enable_all_groups().
|
|
Definition at line 51 of file Logger_Impl.h. References m_groups. Referenced by ASSA::Logger::enable_group(). 00051 { m_groups |= g_; }
|
|
Definition at line 54 of file Logger_Impl.h. References m_groups. Referenced by ASSA::Logger::enable_groups(). 00054 { m_groups |= g_; }
|
|
Definition at line 62 of file Logger_Impl.h. References m_tmflg. Referenced by ASSA::Logger::enable_timestamp(). 00062 { m_tmflg = true; }
|
|
Format and put the message in the buffer. If expected size is smaller then LOGGER_MAXLINE, formatted message is written to the static buffer and release_ is set to false. Otherwise, this function allocates a buffer on the heap big enough to hold the message and set release_ to true. In this case caller is responsible for releasing the memory by calling delete [].
Definition at line 78 of file Logger_Impl.cpp. References LOGGER_MAXLINE, and m_msgbuf. Referenced by ASSA::StdOutLogger::log_msg(), ASSA::RemoteLogger::log_msg(), and ASSA::FileLogger::log_msg(). 00082 { 00083 release_ = false; 00084 char* msg = m_msgbuf; 00085 expected_sz_++; // Expected size includes '\0' 00086 00087 if (expected_sz_ >= LOGGER_MAXLINE) { 00088 msg = new char [expected_sz_]; 00089 release_ = true; 00090 } 00091 if (::vsnprintf (msg, expected_sz_, fmt_, vap_) < 0) { 00092 return NULL; 00093 } 00094 return msg; 00095 }
|
|
Definition at line 68 of file Logger_Impl.h. References m_indent_step. 00068 { return m_indent_step; }
|
|
Definition at line 60 of file Logger_Impl.h. References m_groups. Referenced by ASSA::Logger::group_enabled(), ASSA::StdOutLogger::log_func(), ASSA::RemoteLogger::log_func(), ASSA::FileLogger::log_func(), ASSA::StdOutLogger::log_msg(), ASSA::RemoteLogger::log_msg(), and ASSA::FileLogger::log_msg(). 00060 { return (m_groups & g_); }
|
|
Definition at line 46 of file Logger_Impl.cpp. References m_indent_step. Referenced by ASSA::StdOutLogger::log_func(), ASSA::RemoteLogger::log_func(), ASSA::FileLogger::log_func(), ASSA::StdOutLogger::log_msg(), ASSA::RemoteLogger::log_msg(), and ASSA::FileLogger::log_msg(). 00050 { 00051 u_short bytecount = 0; 00052 00053 if (func_name_.size ()) { 00054 u_int i = 1; 00055 while (i < indent_level_) { 00056 sink_ << '|'; 00057 for (u_short j = 0; j < m_indent_step-1; j++) { 00058 sink_ << ' '; 00059 } 00060 i++; 00061 } 00062 if (type_ == FUNC_ENTRY) { 00063 sink_ << '/' << func_name_ << " "; 00064 } 00065 else if (type_ == FUNC_EXIT) { 00066 sink_ << '\\' << func_name_ << " "; 00067 } 00068 else if (type_ == FUNC_MSG) { 00069 sink_ << '[' << func_name_ << "] "; 00070 } 00071 bytecount += indent_level_ * m_indent_step + func_name_.size () + 3; 00072 } 00073 return bytecount; 00074 }
|
|
Implemented in ASSA::FileLogger, ASSA::RemoteLogger, and ASSA::StdOutLogger. Referenced by ASSA::Logger::log_close(). |
|
Implemented in ASSA::FileLogger, ASSA::RemoteLogger, and ASSA::StdOutLogger. Referenced by ASSA::Logger::log_func(). |
|
Implemented in ASSA::FileLogger, ASSA::RemoteLogger, and ASSA::StdOutLogger. Referenced by ASSA::Logger::log_msg(). |
|
Open connection with Log Server.
Reimplemented in ASSA::RemoteLogger. Definition at line 178 of file Logger_Impl.h.
|
|
Open File Logger.
Reimplemented in ASSA::FileLogger. Definition at line 168 of file Logger_Impl.h.
|
|
Open StdErr Logger.
Reimplemented in ASSA::StdOutLogger. Definition at line 160 of file Logger_Impl.h. Referenced by ASSA::Logger::log_open().
|
|
Reimplemented in ASSA::FileLogger, ASSA::RemoteLogger, and ASSA::StdOutLogger. Definition at line 86 of file Logger_Impl.h. Referenced by ASSA::Logger::log_resync().
|
|
Definition at line 67 of file Logger_Impl.h. References m_indent_step. 00067 { m_indent_step = step_; }
|
|
Definition at line 65 of file Logger_Impl.h. References m_tz. Referenced by ASSA::Logger::set_timezone(). 00065 { m_tz = zone_; }
|
|
Definition at line 64 of file Logger_Impl.h. References m_tmflg. Referenced by add_timestamp(), and ASSA::Logger::timestamp_enabled(). 00064 { return m_tmflg; }
|
|
Maximum length of the formatted message. The size is selected based on the maximum number of bytes transmitted through Socketbuf which is 1416. This is at most the bytes dumped with MemDump - (1416/16 + 2) * 74 = 6660. See MemDump.cpp comments for details. Definition at line 45 of file Logger_Impl.h. Referenced by format_msg(). |
|
Enabled groups.
Definition at line 135 of file Logger_Impl.h. Referenced by disable_all_groups(), disable_group(), disable_groups(), ASSA::FileLogger::dump(), enable_all_groups(), enable_group(), enable_groups(), group_enabled(), ASSA::FileLogger::log_close(), ASSA::StdOutLogger::log_open(), ASSA::RemoteLogger::log_open(), and ASSA::FileLogger::log_open(). |
|
Indentation step.
Definition at line 132 of file Logger_Impl.h. Referenced by ASSA::FileLogger::dump(), get_indent_step(), indent_func_name(), and set_indent_step(). |
|
Log file name.
Definition at line 138 of file Logger_Impl.h. Referenced by ASSA::FileLogger::dump(), ASSA::RemoteLogger::handle_close(), ASSA::FileLogger::handle_rollover(), ASSA::FileLogger::log_close(), ASSA::RemoteLogger::log_open(), and ASSA::FileLogger::log_open(). |
|
Static buffer for formatted message.
Definition at line 129 of file Logger_Impl.h. Referenced by format_msg(). |
|
Timestamp on/off flag.
Definition at line 141 of file Logger_Impl.h. Referenced by disable_timestamp(), ASSA::FileLogger::dump(), enable_timestamp(), and timestamp_enabled(). |
|
Timezone: 0-GMT, 1-Local.
Definition at line 144 of file Logger_Impl.h. Referenced by add_timestamp(), and set_timezone(). |