mirror of
https://git.openldap.org/openldap/openldap.git
synced 2026-06-09 00:32:08 -04:00
ITS#8905 libldap: add timestamp and threadID to debug messages
This commit is contained in:
parent
246dba371e
commit
bc6cfca160
1 changed files with 35 additions and 1 deletions
|
|
@ -45,15 +45,49 @@ int ldap_log_printf( LDAP *ld, int loglvl, const char *fmt, ... )
|
|||
{
|
||||
char buf[ 1024 ];
|
||||
va_list ap;
|
||||
#ifdef HAVE_CLOCK_GETTIME
|
||||
struct timespec tv;
|
||||
#define TS "%08x"
|
||||
#define Tfrac tv.tv_nsec
|
||||
#define gettime(tv) clock_gettime( CLOCK_REALTIME, tv )
|
||||
#else
|
||||
struct timeval tv;
|
||||
#define TS "%05x"
|
||||
#define Tfrac tv.tv_usec
|
||||
#define gettime(tv) gettimeofday( tv, NULL )
|
||||
#endif
|
||||
|
||||
#ifdef NO_THREADS
|
||||
#define TIDp ""
|
||||
#define TIDs
|
||||
#else
|
||||
#define TIDp " %p"
|
||||
#define TIDs , (void *)ldap_pvt_thread_self()
|
||||
#endif
|
||||
|
||||
char *ptr = buf;
|
||||
int len = sizeof(buf);
|
||||
|
||||
if ( !ldap_log_check( ld, loglvl )) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* if using default printer, add timestamp and threadID.
|
||||
* slapd uses its own printer and already includes this.
|
||||
*/
|
||||
if ( ber_pvt_log_print == ber_error_print ) {
|
||||
int prefixlen;
|
||||
gettime( &tv );
|
||||
prefixlen = sprintf( ptr, "%llx." TS TIDp " ",
|
||||
(long long)tv.tv_sec, (unsigned int)Tfrac TIDs );
|
||||
len -= prefixlen;
|
||||
ptr += prefixlen;
|
||||
}
|
||||
|
||||
va_start( ap, fmt );
|
||||
|
||||
buf[sizeof(buf) - 1] = '\0';
|
||||
vsnprintf( buf, sizeof(buf)-1, fmt, ap );
|
||||
vsnprintf( ptr, len-1, fmt, ap );
|
||||
|
||||
va_end(ap);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue