Public Types |
| enum | {
STDERR = 1,
LOGGER = 2,
OSTREAM = 4,
MSG_CALLBACK = 8,
VERBOSE = 16,
VERBOSE_LITE = 32,
SILENT = 64,
SYSLOG = 128,
CUSTOM = 256
} |
| enum | MASK_TYPE { PROCESS = 0,
THREAD = 1
} |
Public Methods |
| | ACE_Log_Msg (void) |
| | Initialize logger. More...
|
| | ~ACE_Log_Msg (void) |
| | cleanup logger. More...
|
| int | open (const ACE_TCHAR *prog_name, u_long options_flags=ACE_Log_Msg::STDERR, const ACE_TCHAR *logger_key=0) |
| | Initialize the ACE logging facility. More...
|
| void | set_flags (u_long f) |
| void | clr_flags (u_long f) |
| u_long | flags (void) |
| void | sync (const ACE_TCHAR *program_name) |
| | Call after doing a fork() to resynchronize the process id and program_name_ variables. More...
|
| void | op_status (int status) |
| | Set the result of the operation status (by convention, -1 means error). More...
|
| int | op_status (void) |
| | Get the result of the operation status (by convention, -1 means error). More...
|
| void | errnum (int) |
| | Set the value of the errnum (by convention this corresponds to errno). More...
|
| int | errnum (void) |
| | Get the value of the errnum (by convention this corresponds to errno). More...
|
| void | linenum (int) |
| | Set the line number where an error occurred. More...
|
| int | linenum (void) |
| | Get the line number where an error occurred. More...
|
| void | file (const char *) |
| | Set the file name where an error occurred. More...
|
| const char * | file (void) |
| | Get the file name where an error occurred. More...
|
| void | msg (const ACE_TCHAR *) |
| | Set the message that describes what type of error occurred. More...
|
| const ACE_TCHAR * | msg (void) |
| | Get the message that describes what type of error occurred. More...
|
| void | restart (int) |
| | Set the field that indicates whether interrupted calls should be restarted. More...
|
| int | restart (void) |
| | Get the field that indicates whether interrupted calls should be restarted. More...
|
| void | msg_ostream (ACE_OSTREAM_TYPE *) |
| | Update the ostream without overwriting the delete_ostream_ flag. More...
|
| void | msg_ostream (ACE_OSTREAM_TYPE *, int delete_ostream) |
| ACE_OSTREAM_TYPE * | msg_ostream (void) const |
| | Get the ostream that is used to print error messages. More...
|
| ACE_Log_Msg_Callback * | msg_callback (ACE_Log_Msg_Callback *c) |
| ACE_Log_Msg_Callback * | msg_callback (void) const |
| int | inc (void) |
| | Nesting depth increment. More...
|
| int | dec (void) |
| | Nesting depth decrement. More...
|
| int | trace_depth (void) |
| | Get trace depth. More...
|
| void | trace_depth (int) |
| | Set trace depth. More...
|
| int | trace_active (void) |
| | Set trace active status. More...
|
| void | trace_active (int value) |
| | Get trace active status. More...
|
| ACE_Thread_Descriptor * | thr_desc (void) const |
| | Get the TSS thread descriptor. More...
|
| void | thr_desc (ACE_Thread_Descriptor *td) |
| void | stop_tracing (void) |
| | Stop tracing status on a per-thread basis... More...
|
| void | start_tracing (void) |
| | Start tracing status on a per-thread basis... More...
|
| int | tracing_enabled (void) |
| | Query tracing status on a per-thread basis... More...
|
| u_long | priority_mask (MASK_TYPE=THREAD) |
| | Get the current ACE_Log_Priority mask. More...
|
| u_long | priority_mask (u_long, MASK_TYPE=THREAD) |
| | Set the ACE_Log_Priority mask, returns original mask. More...
|
| int | log_priority_enabled (ACE_Log_Priority log_priority) |
| | Return true if the requested priority is enabled. More...
|
| int | log_priority_enabled (ACE_Log_Priority log_priority, const char *,...) |
| | Return true if the requested priority is enabled. More...
|
| pid_t | getpid (void) const |
| | Optimize reading of the pid (avoids a system call if the value is cached...). More...
|
| const ACE_TCHAR * | local_host (void) const |
| | Get the name of the local host. More...
|
| void | local_host (const ACE_TCHAR *) |
| | Set the name of the local host. More...
|
| void | set (const char *file, int line, int op_status=-1, int errnum=0, int restart=1, ACE_OSTREAM_TYPE *os=0, ACE_Log_Msg_Callback *c=0) |
| void | conditional_set (const char *file, int line, int op_status, int errnum) |
| | These values are only actually set if the requested priority is enabled. More...
|
| ssize_t | log (ACE_Log_Priority priority, const ACE_TCHAR *format,...) |
| ssize_t | log (ACE_Log_Priority priority, const ACE_ANTI_TCHAR *format,...) |
| ssize_t | log (const ACE_TCHAR *format, ACE_Log_Priority priority, va_list argp) |
| ssize_t | log (ACE_Log_Record &log_record, int suppress_stderr=0) |
| | Log a custom built log record to the currently enabled logging sinks. More...
|
| int | log_hexdump (ACE_Log_Priority log_priority, const char *buffer, size_t size, const ACE_TCHAR *text=0) |
| void | dump (void) const |
| | Dump the state of an object. More...
|
|
lock
This lock is used internally by the ACE_Log_Msg implementation. By exporting the lock, applications can hold the lock atomically over a number of calls to ACE_Log_Msg.
|
| int | acquire (void) |
| | Acquire the internal lock. More...
|
| int | release (void) |
| | Release the internal lock. More...
|
Static Public Methods |
| ACE_Log_Msg * | instance (void) |
| | Returns a pointer to the Singleton. More...
|
| int | last_error_adapter (void) |
| | Returns last error. More...
|
| int | exists (void) |
| | Returns non-null if an ACE_Log_Msg exists for the calling thread. More...
|
| const ACE_TCHAR * | program_name (void) |
| | Returns the current program name used for logging. More...
|
| void | disable_debug_messages (ACE_Log_Priority priority=LM_DEBUG) |
| | Clears the flag from the default priority mask used to initialize ACE_Log_Msg instances. More...
|
| void | enable_debug_messages (ACE_Log_Priority priority=LM_DEBUG) |
| | Sets the flag in the default priority mask used to initialize ACE_Log_Msg instances. More...
|
| ACE_Log_Msg_Backend * | msg_backend (ACE_Log_Msg_Backend *b) |
| ACE_Log_Msg_Backend * | msg_backend (void) |
| void | init_hook (ACE_OS_Log_Msg_Attributes &attributes) |
| void | inherit_hook (ACE_OS_Thread_Descriptor *thr_desc, ACE_OS_Log_Msg_Attributes &attributes) |
Public Attributes |
| | ACE_ALLOC_HOOK_DECLARE |
| | Declare the dynamic allocation hooks. More...
|
Private Methods |
| ACE_Log_Msg & | operator= (const ACE_Log_Msg &) |
| | ACE_Log_Msg (const ACE_Log_Msg &) |
Static Private Methods |
| void | close (void) |
| | For cleanup, at program termination. More...
|
| void | sync_hook (const ACE_TCHAR *prg_name) |
| | Decouple the OS layer from the ACE_Log_Msg layer. More...
|
| ACE_OS_Thread_Descriptor * | thr_desc_hook (void) |
| | Return the TSS singleton thread descriptor. More...
|
Private Attributes |
| int | status_ |
| | Status of operation (-1 means failure, >= 0 means success). More...
|
| int | errnum_ |
| | Type of error that occurred (see <sys/errno.h>). More...
|
| int | linenum_ |
| | Line number where the error occurred. More...
|
| char | file_ [MAXPATHLEN+1] |
| | File where the error occurred. More...
|
| ACE_TCHAR | msg_ [ACE_MAXLOGMSGLEN+1] |
| | The log message, which resides in thread-specific storage. Note that only the current log message is stored here -- it will be overwritten by the subsequent call to log(). More...
|
| int | restart_ |
| | Indicates whether we should restart system calls that are interrupted. More...
|
| ACE_OSTREAM_TYPE * | ostream_ |
| | The ostream where logging messages can be written. More...
|
| ACE_Log_Msg_Callback * | msg_callback_ |
| | The callback object. More...
|
| int | trace_depth_ |
| | Depth of the nesting for printing traces. More...
|
| int | trace_active_ |
| | Are we already within an ACE_Trace constructor call? More...
|
| int | tracing_enabled_ |
| | Are we allowing tracing in this thread? More...
|
| int | delete_ostream_ |
| | Are we deleting this ostream? More...
|
| ACE_Thread_Descriptor * | thr_desc_ |
| u_long | priority_mask_ |
| struct { |
| int is_set_ |
| const char * file_ |
| int line_ |
| int op_status_ |
| int errnum_ |
| } | conditional_values_ |
| | Anonymous struct since there will only be one instance. This struct keeps information stored away in case we actually end up calling log() if the log priority is correct. More...
|
Static Private Attributes |
| u_long | process_priority_mask_ |
| | Default per-process priority mask By default, all priorities are enabled. More...
|
| const ACE_TCHAR * | program_name_ = 0 |
| | Records the program name. More...
|
| const ACE_TCHAR * | local_host_ = 0 |
| | Name of the local host (used when printing messages). More...
|
| pid_t | pid_ = -1 |
| | Process id of the current process. More...
|
| u_long | flags_ = ACE_Log_Msg::STDERR |
| | Options flags used to hold the logger flag options, e.g., STDERR, LOGGER, OSTREAM, MSG_CALLBACK, etc. More...
|
| int | msg_off_ = 0 |
| | Offset of msg_[]. More...
|
| int | instance_count_ = 0 |
| | Instance count for Log_Msg - used to know when dynamically allocated storage (program name and host name) can be safely deleted. More...
|
| u_long | default_priority_mask_ = 0 |
| | Default per-thread priority mask By default, no priorities are enabled. More...
|
This class is very flexible since it allows formatted error messages to be printed in a thread-safe manner to various locations, such as stdout, stderr, cerr, a distributed logger, etc. The current message is also kept in a thread-specific storage location (threads spawned using ACE_Thread_Manager automatically get an ACE_Log_Msg object that inherits the spawning thread's settings), which can be used to communicate errors between framework methods and callers. A message is logged by the log() method, only if the message priority is currently enabled. Moreover, only the current log message is stored here -- it will be overwritten by the subsequent call to log().
The ACE_Log_Msg class uses two priority masks to control its logging behavior. The priority_mask_ object attribute is thread- specific and specifies the priority levels logged by the thread. The process_priority_mask_ class attribute is not thread-specific and specifies the priority levels that will be logged by all threads in the process. By default, all levels are disabled for priority_mask_ and all levels are enabled for process_priority_mask_ (i.e. the process-wide mask controls the settings, and each instance can expand on it if desired). Both priority masks can be modified using the priority_mask() method of this class.