/** Toggle verbose mode. */
static int l_verbose(lua_State *L)
{
- if (lua_isboolean(L, 1) || lua_isnumber(L, 1)) {
- kr_verbose_set(lua_toboolean(L, 1));
+ log_level_t level = LOG_ERR;
+ if ((lua_isboolean(L, 1) && lua_toboolean(L, 1) == true) ||
+ (lua_isnumber(L, 1) && lua_tointeger(L, 1) == LOG_DEBUG)) {
+ level = LOG_DEBUG;
}
- lua_pushboolean(L, kr_verbose_status);
+
+ lua_pushboolean(L, kr_log_level_set(level) == LOG_DEBUG);
return 1;
}
args->interactive = false;
break;
case 'v':
- kr_verbose_set(true);
-#ifdef NOVERBOSELOG
- kr_log_info("--verbose flag has no effect due to compilation with -DNOVERBOSELOG.\n");
-#endif
+ kr_log_level_set(LOG_DEBUG);
break;
case 'q':
args->quiet = true;
*/
#include <stdio.h>
+#include <gnutls/gnutls.h>
#include "lib/log.h"
log_level_t kr_log_level = LOG_CRIT;
va_end(args);
}
+static void kres_gnutls_log(int level, const char *message)
+{
+ kr_log_debug("[gnutls] (%d) %s", level, message);
+}
+
+int kr_log_level_set(log_level_t level)
+{
+ if (level < LOG_CRIT || level > LOG_DEBUG)
+ return kr_log_level;
+
+ kr_log_level = level;
+
+ /* gnutls logs messages related to our TLS and also libdnssec,
+ * and the logging is set up in a global way only */
+ if (kr_log_level >= LOG_DEBUG) {
+ gnutls_global_set_log_function(kres_gnutls_log);
+ }
+ gnutls_global_set_log_level(level);
+
+ return kr_log_level;
+
+}
+
+log_level_t kr_log_level_get(void)
+{
+ return kr_log_level;
+}
+
void kr_log_init(log_level_t level)
{
kr_log_level = level;
KR_EXPORT KR_PRINTF(2) void kr_log_fmt(log_level_t level, const char *fmt, ...);
KR_EXPORT extern log_level_t kr_log_level;
+KR_EXPORT int kr_log_level_set(log_level_t level);
+KR_EXPORT log_level_t kr_log_level_get(void);
void kr_log_init(log_level_t level);
#define kr_log_debug(fmt, ...) kr_log_fmt(LOG_DEBUG, fmt, ## __VA_ARGS__)
#include "lib/selection.h"
#include "lib/resolve.h"
-#include <gnutls/gnutls.h>
#include <libknot/descriptor.h>
#include <libknot/dname.h>
#include <libknot/rrset-dump.h>
/* Always compile-in log symbols, even if disabled. */
#undef kr_verbose_status
-#undef kr_verbose_set
/* Logging & debugging */
bool kr_verbose_status = false;
errno = errno_orig;
}
+
/*
* Macros.
*/
/*
* Cleanup callbacks.
*/
-static void kres_gnutls_log(int level, const char *message)
-{
- kr_log_verbose("[gnutls] (%d) %s", level, message);
-}
-
-bool kr_verbose_set(bool status)
-{
-#ifndef NOVERBOSELOG
- kr_verbose_status = status;
-
- /* gnutls logs messages related to our TLS and also libdnssec,
- * and the logging is set up in a global way only */
- if (status) {
- gnutls_global_set_log_function(kres_gnutls_log);
- }
- gnutls_global_set_log_level(status ? 5 : 0);
-#endif
- return kr_verbose_status;
-}
-
static void kr_vlog_req(
const struct kr_request * const req, uint32_t qry_uid,
const unsigned int indent, const char *source, const char *fmt,
/** Whether in --verbose mode. Only use this for reading. */
KR_EXPORT extern bool kr_verbose_status;
-/** Set --verbose mode. Not available if compiled with -DNOVERBOSELOG. */
-KR_EXPORT bool kr_verbose_set(bool status);
-
/**
* @brief Return true if the query has request log handler installed.
*/
cfg.dry_run = true;
break;
case 'v':
- kr_verbose_set(true);
+ kr_log_level_set(LOG_DEBUG);
break;
case ':':
case '?':