/**
* Format a message to the thread-safe ace logging mechanism. Valid
* Options (prefixed by '%', as in printf format strings) include:
*-'A': print an ace_timer_t value (which cocould be either double
* Or ace_uint32 .)
*-'A': Abort the program at this point abruptly.
*-'C': print a character
*-'C': print a character string
*-'I', 'D': print a decimal number
*-'I': Indent according to nesting depth (obtained from
* Ace_trace: get_nesting_indent ()).
*-'E', 'E', 'F', 'F', 'G', 'G': print a double
*-'L': print line number where an error occurred.
*-'M': print the name of the priority of the message.
*-'M': return the message corresponding to errno value, e.g.,
* Done by strerror ()
*-'N': print file name where the error occurred.
*-'N': print the name of the program (or "<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
*-'Q': print out the int64 number
*-'@': Print a void * pointer (in hexadecimal)
*-'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': prints a wide character
*-'W': print a wide character string
*-'X': print as a hex number
*-'X': print as a hex number
*-'Z': print an ace_ OS: wchar character
*-'Z': print an ace_ OS: wchar character string
*-'%': Print out a single percent sign, '%'
*/
Post: http://www.cppblog.com/dede/archive/2007/10/03/33348.html