1 /* $OpenLDAP: pkg/ldap/servers/slapd/slapi/printmsg.c,v 1.15.2.3 2008/02/11 23:26:49 kurt Exp $ */
2 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
4 * Copyright 2002-2008 The OpenLDAP Foundation.
5 * Portions Copyright 1997,2002-2003 IBM Corporation.
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted only as authorized by the OpenLDAP
12 * A copy of this license is available in the file LICENSE in the
13 * top-level directory of the distribution or, alternatively, at
14 * <http://www.OpenLDAP.org/license.html>.
17 * This work was initially developed by IBM Corporation for use in
18 * IBM products and subsequently ported to OpenLDAP Software by
24 #include <ac/string.h>
25 #include <ac/stdarg.h>
26 #include <ac/unistd.h>
31 #include <ldap_config.h>
35 #include <ldap_pvt_thread.h>
37 /* Single threads access to routine */
38 ldap_pvt_thread_mutex_t slapi_printmessage_mutex
;
39 char *slapi_log_file
= NULL
;
40 int slapi_log_level
= SLAPI_LOG_PLUGIN
;
56 assert( subsystem
!= NULL
);
57 assert( fmt
!= NULL
);
59 ldap_pvt_thread_mutex_lock( &slapi_printmessage_mutex
) ;
61 /* for now, we log all severities */
62 if ( level
<= slapi_log_level
) {
63 fp
= fopen( slapi_log_file
, "a" );
72 while ( lockf( fileno( fp
), F_LOCK
, 0 ) != 0 ) {
77 ltm
= localtime( ¤tTime
);
78 strftime( timeStr
, sizeof(timeStr
), "%x %X", ltm
);
81 fprintf( fp
, " %s: ", subsystem
);
82 vfprintf( fp
, fmt
, arglist
);
83 if ( fmt
[ strlen( fmt
) - 1 ] != '\n' ) {
88 lockf( fileno( fp
), F_ULOCK
, 0 );
97 ldap_pvt_thread_mutex_unlock( &slapi_printmessage_mutex
);