#include <ace/Log_Msg.h>
class ACE_Log_Msg {
public:
enum{ STDERR = 1, LOGGER = 2, OSTREAM = 4, MSG_CALLBACK = 8, VERBOSE = 16, VERBOSE_LITE = 32, SILENT = 64 };static ACE_Log_Msg *instance (void);
static int exists (void);
static void disable_debug_messages ( ACE_Log_Priority priority = LM_DEBUG );
static void enable_debug_messages ( ACE_Log_Priority priority = LM_DEBUG );
ACE_Log_Msg (void);
~ACE_Log_Msg (void);
int open ( const ASYS_TCHAR *prog_name, u_long options_flags = ACE_Log_Msg::STDERR, LPCTSTR logger_key = 0 );
void set_flags (u_long f);
void clr_flags (u_long f);
u_long flags (void);
int acquire (void);
int release (void);
void sync (const ASYS_TCHAR *program_name);
void op_status (int status);
int op_status (void);
void errnum (int);
int errnum (void);
void linenum (int);
int linenum (void);
void file (const ASYS_TCHAR *);
const ASYS_TCHAR *file (void);
void msg (const ASYS_TCHAR *);
const ASYS_TCHAR *msg (void);
void restart (int);
int restart (void);
void msg_ostream (ACE_OSTREAM_TYPE *, int delete_ostream = 0);
ACE_OSTREAM_TYPE *msg_ostream (void) const;
ACE_Log_Msg_Callback *msg_callback (ACE_Log_Msg_Callback *c);
ACE_Log_Msg_Callback *msg_callback (void) const;
int inc (void);
int dec (void);
int trace_depth (void);
void trace_depth (int);
int trace_active (void);
void trace_active (int value);
ACE_Thread_Descriptor *thr_desc (void) const;
void thr_desc (ACE_Thread_Descriptor *td);
ACE_SEH_EXCEPT_HANDLER seh_except_selector (void);
ACE_SEH_EXCEPT_HANDLER seh_except_selector ( ACE_SEH_EXCEPT_HANDLER );
ACE_SEH_EXCEPT_HANDLER seh_except_handler (void);
ACE_SEH_EXCEPT_HANDLER seh_except_handler ( ACE_SEH_EXCEPT_HANDLER );
void stop_tracing (void);
void start_tracing (void);
int tracing_enabled (void);
typedef enum { PROCESS = 0, THREAD = 1 } MASK_TYPE;
u_long priority_mask (MASK_TYPE = THREAD);
u_long priority_mask (u_long, MASK_TYPE = THREAD);
int log_priority_enabled (ACE_Log_Priority log_priority);
pid_t getpid (void) const;
const ASYS_TCHAR *local_host (void) const;
void local_host (const ASYS_TCHAR *);
void set ( const ASYS_TCHAR *file, int line, int op_status = -1, int errnum = 0, int restart = 1, ACE_OSTREAM_TYPE *os = 0, ACE_Log_Msg_Callback *c = 0 );
ssize_t log ( ACE_Log_Priority priority, const ASYS_TCHAR *format, ... );
ssize_t log ( const ASYS_TCHAR *format, ACE_Log_Priority priority, va_list argp );
ssize_t log (ACE_Log_Record &log_record, int suppress_stderr = 0);
int log_hexdump ( ACE_Log_Priority log_priority, const char *buffer, int size, const ASYS_TCHAR *text = 0 );
void dump (void) const;
ACE_ALLOC_HOOK_DECLARE;
private:
int status_;
int errnum_;
int linenum_;
ASYS_TCHAR file_[MAXPATHLEN + 1];
ASYS_TCHAR msg_[ACE_Log_Record::MAXLOGMSGLEN];
int restart_;
ACE_OSTREAM_TYPE *ostream_;
ACE_Log_Msg_Callback *msg_callback_;
int trace_depth_;
int trace_active_;
int tracing_enabled_;
int delete_ostream_;
ACE_Thread_Descriptor *thr_desc_;
ACE_SEH_EXCEPT_HANDLER seh_except_selector_;
ACE_SEH_EXCEPT_HANDLER seh_except_handler_;
u_long priority_mask_;
static u_long process_priority_mask_;
static const ASYS_TCHAR *program_name_;
static const ASYS_TCHAR *local_host_;
static pid_t pid_;
static u_long flags_;
static int msg_off_;
static int instance_count_;
static u_long default_priority_mask_;
static int key_created_;
inline defined (ACE_HAS_TSS_EMULATION);
static void close (void);
friend void ACE_OS::cleanup_tss (const u_int);
ACE_Log_Msg &operator= (const ACE_Log_Msg &);
ACE_Log_Msg (const ACE_Log_Msg &);
};
static ACE_Log_Msg *instance (void);
static int exists (void);
static void disable_debug_messages (
ACE_Log_Priority priority = LM_DEBUG
);
static void enable_debug_messages (
ACE_Log_Priority priority = LM_DEBUG
);
ACE_Log_Msg (void);
~ACE_Log_Msg (void);
int open (
const ASYS_TCHAR *prog_name,
u_long options_flags = ACE_Log_Msg::STDERR,
LPCTSTR logger_key = 0
);
prog_name
is the
name of the executable program. flags
are a bitwise-or of
options flags passed to the Logger (see the enum above for the valid
values). If the LOGGER
bit in flags
is enabled then
logger_key
is the name of ACE_FIFO rendezvous point where the
local client logger daemon is listening for logging messages.
void set_flags (u_long f);
void clr_flags (u_long f);
u_long flags (void);
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);
int release (void);
void sync (const ASYS_TCHAR *program_name);
fork
to resynchronize the process id and
program_name
variables.
void op_status (int status);
int op_status (void);
void errnum (int);
int errnum (void);
void linenum (int);
int linenum (void);
void file (const ASYS_TCHAR *);
const ASYS_TCHAR *file (void);
void msg (const ASYS_TCHAR *);
const ASYS_TCHAR *msg (void);
void restart (int);
int restart (void);
iostream.h
support on CE.
void msg_ostream (ACE_OSTREAM_TYPE *, int delete_ostream = 0);
ACE_OSTREAM_TYPE *msg_ostream (void) const;
ACE_Log_Msg_Callback *msg_callback (ACE_Log_Msg_Callback *c);
ACE_Log_Msg_Callback *msg_callback (void) const;
ACE_Log_Msg_Callback
s are not
inherited when spawning a new thread, so you'll need to reset
them in each thread.
int inc (void);
int dec (void);
int trace_depth (void);
void trace_depth (int);
int trace_active (void);
void trace_active (int value);
ACE_Thread_Descriptor *thr_desc (void) const;
void thr_desc (ACE_Thread_Descriptor *td);
ACE_SEH_EXCEPT_HANDLER seh_except_selector (void);
ACE_SEH_EXCEPT_HANDLER seh_except_selector (ACE_SEH_EXCEPT_HANDLER);
ACE_SEH_EXCEPT_HANDLER seh_except_handler (void);
ACE_SEH_EXCEPT_HANDLER seh_except_handler (ACE_SEH_EXCEPT_HANDLER);
void stop_tracing (void);
void start_tracing (void);
int tracing_enabled (void);
typedef enum { PROCESS = 0, THREAD = 1 } MASK_TYPE;
u_long priority_mask (MASK_TYPE = THREAD);
ACE_Log_Priority
mask.
u_long priority_mask (u_long, MASK_TYPE = THREAD);
ACE_Log_Priority
mask, returns original mask.
int log_priority_enabled (ACE_Log_Priority log_priority);
pid_t getpid (void) const;
const ASYS_TCHAR *local_host (void) const;
void local_host (const ASYS_TCHAR *);
void set (
const ASYS_TCHAR *file,
int line,
int op_status = -1,
int errnum = 0,
int restart = 1,
ACE_OSTREAM_TYPE *os = 0,
ACE_Log_Msg_Callback *c = 0
);
ssize_t log (
ACE_Log_Priority priority,
const ASYS_TCHAR *format,
...
);
unknown
" if not set)
'o': print as an octal number
'P': print out the current process id
'p': print out the appropriate errno message from sys_errlist, e.g., as done by perror()
'Q': print out the uint64 number
'r': call the function pointed to by the corresponding argument
'R': print return status
'S': print out the appropriate _sys_siglist entry corresponding to var-argument.
's': print out a character string
'T': print timestamp in hour:minute:sec:usec format.
'D': print timestamp in month/day/year hour:minute:sec:usec format.
't': print thread id (1 if single-threaded)
'u': print as unsigned int
'W': print out a wide (Unicode) character string (currently Win32 only).
'X', 'x': print as a hex number
'%': print out a single percent sign, '%'
ssize_t log (
const ASYS_TCHAR *format,
ACE_Log_Priority priority,
va_list argp
);
ssize_t log (ACE_Log_Record &log_record, int suppress_stderr = 0);
int log_hexdump (
ACE_Log_Priority log_priority,
const char *buffer,
int size,
const ASYS_TCHAR *text = 0
);
log
to do the actual print, but formats first to make the chars
printable.
void dump (void) const;
ACE_ALLOC_HOOK_DECLARE;
static u_long process_priority_mask_;
ACE_Log_Priority
values that
are currently enabled. Default is for all logging priorities to
be enabled.
static const ASYS_TCHAR *program_name_;
static const ASYS_TCHAR *local_host_;
static pid_t pid_;
static u_long flags_;
static int msg_off_;
static int instance_count_;
static u_long default_priority_mask_;
static int key_created_;
inline defined (ACE_HAS_TSS_EMULATION);
static void close (void);
friend void ACE_OS::cleanup_tss (const u_int);
ACE_Log_Msg &operator= (const ACE_Log_Msg &);
ACE_Log_Msg (const ACE_Log_Msg &);