+#ifdef NEW_LOGGING
+extern int ldap_loglevels[LDAP_SUBSYS_NUM];
+#define LDAP_LOG(a, b, fmt, arg1, arg2, arg3) do {\
+ if (ldap_loglevels[LDAP_SUBSYS_##a] >= LDAP_LEVEL_##b || \
+ ldap_loglevels[LDAP_SUBSYS_GLOBAL] >= LDAP_LEVEL_##b)\
+ lutil_log (LDAP_SUBSYS_##a, LDAP_LEVEL_##b, fmt, arg1, arg2, arg3); \
+ } while (0)
+
+
+#define LDAP_LOGS_TEST(a, b) \
+ (ldap_loglevels[LDAP_SUBSYS_##a] >= LDAP_LEVEL_##b || \
+ ldap_loglevels[LDAP_SUBSYS_GLOBAL] >= LDAP_LEVEL_##b)
+
+#endif /* LDAP_LOG */
+
+#ifndef LDAP_LOG
+#define LDAP_LOG(a, b, fmt, arg1, arg2, arg3)
+#endif
+
+LDAP_LUTIL_F(int) lutil_mnem2level LDAP_P(( const char *level ));
+LDAP_LUTIL_F(void) lutil_log_initialize LDAP_P((
+ int argc, char **argv ));
+LDAP_LUTIL_F(int) lutil_set_debug_level LDAP_P((
+ const char *subsys, int level ));
+LDAP_LUTIL_F(void) lutil_log LDAP_P((
+ const int subsys, int level, const char *fmt, ... ));
+
+LDAP_LUTIL_F(int) lutil_debug_file LDAP_P(( FILE *file ));
+
+
+LDAP_LUTIL_F(void) lutil_debug LDAP_P((
+ int debug, int level,
+ const char* fmt, ... )) LDAP_GCCATTR((format(printf, 3, 4)));
+