]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
log: use log_level() lua API
authorTomas Krizek <tomas.krizek@nic.cz>
Tue, 27 Jul 2021 20:08:01 +0000 (22:08 +0200)
committerTomas Krizek <tomas.krizek@nic.cz>
Thu, 29 Jul 2021 09:44:45 +0000 (11:44 +0200)
Using a single function to get/set values is more consistent with our
existing lua API rather than having two separate set and get functions.

34 files changed:
ci/respdiff/kresd.config
daemon/cache.test/clear.test.lua
daemon/cache.test/insert_ns.test.integr/kresd_config.j2
daemon/engine.c
daemon/lua/map.test.integr/kresd_config.j2
daemon/scripting.rst
doc/config-logging-monitoring.rst
doc/config-overview.rst
doc/upgrading.rst
etc/config/config.docker
lib/cache/overflow.test.integr/kresd_config.j2
lib/cache/test.integr/kresd_config.j2
lib/layer/test.integr/kresd_config.j2
lib/layer/validate.test.integr/kresd_config.j2
lib/log.c
lib/log.h
modules/bogus_log/test.integr/kresd_config.j2
modules/daf/test.integr/kresd_config.j2
modules/policy/README.rst
modules/policy/noipv6.test.integr/kresd_config.j2
modules/policy/noipvx.test.integr/kresd_config.j2
modules/policy/test.integr/kresd_config.j2
modules/prefill/prefill.test/prefill.test.lua
modules/rebinding/test.integr/kresd_config.j2
modules/refuse_nord/test.integr/kresd_config.j2
modules/renumber/renumber.test.lua
modules/serve_stale/test.integr/kresd_config.j2
modules/stats/test.integr/kresd_config.j2
modules/ta_update/ta_update.test.integr/kresd_config.j2
modules/ta_update/ta_update.unmanagedkey.test.integr/kresd_config.j2
modules/view/addr.test.integr/kresd_config.j2
modules/view/tsig.test.integr/kresd_config.j2
scripts/kresd-host.lua
tests/pytests/templates/kresd.conf.j2

index 0539cec71d509115f52bf74b7fd5cf7333d9fea9..6a26cabc3e5bf7f71805677f14593d035f056cd9 100644 (file)
@@ -23,4 +23,4 @@ modules = {
 local _, up_bs = net.bufsize()
 net.bufsize(4096, up_bs)
 
-set_log_level('debug')
+log_level('debug')
index c2da41cf0959220852e8e8d328f3479b80cdda84..62228948120a4b175c763a454ede94a42eb91ecd 100644 (file)
@@ -15,7 +15,7 @@ end
 policy.add(policy.suffix(policy.PASS, {todname('test.')}))
 
 cache.size = 2*MB
--- set_log_level('debug')
+-- log_level('debug')
 
 -- Self-checks on globals
 assert(help() ~= nil)
index 11e13c9c4f0f1725e45cdf7bb27b4d44ccc3c6ba..ac83d20f5471d16b069196ae44c65280330335af 100644 (file)
@@ -48,7 +48,7 @@ if detect_time_skew then
 end
 
 _hint_root_file('hints')
-set_log_level('debug')
+log_level('debug')
 {% endraw %}
 
 net = { '{{SELF_ADDR}}' }
index 889d886f0b4829956a888c64619b9c65780ce81e..116f6cc6a54eb29e36e1269356bc415642482af4 100644 (file)
@@ -74,7 +74,7 @@ static int l_help(lua_State *L)
                "hostname()\n    hostname\n"
                "package_version()\n    return package version\n"
                "user(name[, group])\n    change process user (and group)\n"
-               "set_log_level\n        logging level (crit, err, warning, notice, info or debug)\n"
+               "log_level(level)\n     logging level (crit, err, warning, notice, info or debug)\n"
                "option(opt[, new_val])\n    get/set server option\n"
                "mode(strict|normal|permissive)\n    set resolver strictness level\n"
                "reorder_RR([true|false])\n    set/get reordering of RRs within RRsets\n"
@@ -145,34 +145,35 @@ static int l_quit(lua_State *L)
 /** Toggle verbose mode. */
 static int l_verbose(lua_State *L)
 {
-       kr_log_deprecate(SYSTEM, "use set_log_level() instead of verbose()\n");
+       kr_log_deprecate(SYSTEM, "use log_level() instead of verbose()\n");
 
        if (lua_isboolean(L, 1) || lua_isnumber(L, 1)) {
                kr_log_level_set(lua_toboolean(L, 1) == true ? LOG_DEBUG : LOG_DEFAULT_LEVEL);
        }
 
-       lua_pushboolean(L, kr_log_level_get() == LOG_DEBUG);
+       lua_pushboolean(L, kr_log_level == LOG_DEBUG);
        return 1;
 }
 
-static int l_set_log_level(lua_State *L)
+static int l_log_level(lua_State *L)
 {
-       if (lua_gettop(L) != 1 || !lua_isstring(L, 1)) {
-               lua_error_p(L, "takes one string parameter");
-               return 0;
+       const int params = lua_gettop(L);
+       if (params > 1) {
+               goto bad_call;
+       } else if (params == 1) {  // set
+               const char *lvl_str = lua_tostring(L, 1);
+               if (!lvl_str)
+                       goto bad_call;
+               kr_log_level_t lvl = kr_log_name2level(lvl_str);
+               if (lvl < 0)
+                       lua_error_p(L, "unknown log level '%s'", lvl_str);
+               kr_log_level_set(lvl);
        }
-
-       kr_log_level_t lvl = kr_log_name2level(lua_tostring(L, 1));
-       lvl = kr_log_level_set(lvl);
-
-       lua_pushstring(L, kr_log_level2name(lvl));
-       return 1;
-}
-
-static int l_get_log_level(lua_State *L)
-{
-       lua_pushstring(L, kr_log_level2name(kr_log_level_get()));
+       // get
+       lua_pushstring(L, kr_log_level2name(kr_log_level));
        return 1;
+bad_call:
+       lua_error_p(L, "takes one string parameter or nothing");
 }
 
 static int l_set_log_target(lua_State *L)
@@ -547,10 +548,8 @@ static int init_state(struct engine *engine)
        lua_setglobal(engine->L, "package_version");
        lua_pushcfunction(engine->L, l_verbose);
        lua_setglobal(engine->L, "verbose");
-       lua_pushcfunction(engine->L, l_set_log_level);
-       lua_setglobal(engine->L, "set_log_level");
-       lua_pushcfunction(engine->L, l_get_log_level);
-       lua_setglobal(engine->L, "get_log_level");
+       lua_pushcfunction(engine->L, l_log_level);
+       lua_setglobal(engine->L, "log_level");
        lua_pushcfunction(engine->L, l_set_log_target);
        lua_setglobal(engine->L, "set_log_target");
        lua_pushcfunction(engine->L, l_add_log_groups);
index 086dab9f795f2ed1d4ed9f66fa477586b31eaaf6..5c9cd123cdfefa3834b52fd4a701b06e2979b023 100644 (file)
@@ -39,7 +39,7 @@ net.listen(worker.control_path .. worker.pid, nil, {kind = 'control'})
 assert(#net.list() >= 3)  -- UDP, TCP, control
 
 -- debug, kept for future use
---set_log_level("debug")
+--log_level("debug")
 log_debug(ffi.C.LOG_GRP_TESTS, '%s', worker.control_path)
 log_debug(ffi.C.LOG_GRP_TESTS, '%s', table_print(net.list()))
 
index 5cc8a0453a2fc7dd72fa59f039393330df09b6c9..e52a850a00418c79530543dee4e7ca414c319d97 100644 (file)
@@ -53,7 +53,7 @@ The *direct output* of commands sent over socket is captured and sent back,
 which gives you an immediate response on the outcome of your command.
 The commands and their output are also logged in ``contrl`` group,
 on ``debug`` level if successful or ``warning`` level if failed
-(see around :func:`set_log_level`).
+(see around :func:`log_level`).
 
 Control sockets are also a way to enumerate and test running instances, the
 list of sockets corresponds to the list of processes, and you can test the
index 6250a4fe3c3f0fe6335481cc75fd4aea791f65da..c600bd68f8eaa0380128b8ac684c3782ac36e641 100644 (file)
@@ -10,7 +10,7 @@ E.g. on distributions using systemd-journald use command ``journalctl -u kresd@*
 Knot Resolver supports 6 logging levels - ``crit``, ``err``, ``warning``,
 ``notice``, ``info``, ``debug``. All levels with the same meaning as is defined
 in ``syslog.h``. It is possible change logging level using
-:func:`set_log_level` function.
+:func:`log_level` function.
 
 Logging level ``notice`` is set after start by default,
 so logs from Knot Resolver should contain only couple lines a day.
@@ -20,20 +20,20 @@ In addition to levels, logging is also divided into the
 :ref:`groups <config_log_groups>`. All groups
 are logged by default, but you can enable ``debug`` level for some groups using
 :func:`add_log_groups` function. Other groups are logged to the log level
-set by :func:`set_log_level`.
+set by :func:`log_level`.
 
-.. py:function:: set_log_level(level)
+.. py:function:: log_level([level])
 
-  :param: String ``'crit'``, ``'err'``, ``'warning'``, ``'notice'``,
-   ``'info'`` or ``'debug'``.
+  :param: string ``'crit'``, ``'err'``, ``'warning'``, ``'notice'``,
+   ``'info'`` or ``'debug'``
   :return: string Current logging level.
 
-  Set global logging level.
+  Pass a string to set the global logging level.
 
   .. py:function:: verbose([true | false])
 
      .. deprecated:: 5.4.0
-        Use :func:`set_log_level` instead.
+        Use :func:`log_level` instead.
 
      :param: ``true`` enable ``debug`` level, ``false`` switch to default level (``notice``).
      :return: boolean ``true`` when ``debug`` level is enabled.
@@ -42,12 +42,6 @@ set by :func:`set_log_level`.
      On busy systems vebose logging can produce several MB of logs per
      second and will slow down operation.
 
-.. py:function:: get_log_level()
-
-  :return: string Current logging level.
-
-  Show current logging level.
-
 .. py:function:: set_log_target(target)
 
   :param: String ``'syslog'``, ``'stderr'``, ``'stdout'``
@@ -75,7 +69,7 @@ set by :func:`set_log_level`.
   :param: :ref:`Groups <config_log_groups>` switched to global logging level.
 
   Switch selected :ref:`groups <config_log_groups>` to logging level set
-  by :func:`set_log_level`.
+  by :func:`log_level`.
 
 It is also possible to enable ``debug`` logging level for *a single request*, see chapter :ref:`mod-http-trace`.
 
index 3d0f3c69f217089b6dae910205d93d9433191399..ba47be453ff65b23db417a55ec9bde7bfcd9ebff 100644 (file)
@@ -62,9 +62,9 @@ The **interactive prompt** is denoted by ``>``, so all examples starting with ``
         > -- this is a comment entered into interactive prompt
         > -- comments have no effect here
         > -- the next line shows a command entered interactivelly and its output
-        > get_log_level()
+        > log_level()
         'notice'
-        > -- the previous line without > character is output from get_log_level() command
+        > -- the previous line without > character is output from log_level() command
 
 Following example demontrates how to interactivelly list all currently loaded modules, and includes multi-line output:
 
index a794522f710e7f4014112129cee34e7c581ffc0f..5694a4ce2c79bda955329cc12281c2d28df533dc 100644 (file)
@@ -23,7 +23,7 @@ newer versions when they are released.
   Preferred way to manage :ref:`systemd-multiple-instances` is to use a process manager,
   e.g. systemd_ or supervisord_.
 * Function :func:`verbose` is deprecated and will be eventually removed.
-  Prefered way to change logging level is use to :func:`set_log_level`.
+  Prefered way to change logging level is use to :func:`log_level`.
 
 .. _`systemd`: https://systemd.io/
 .. _`supervisord`: http://supervisord.org/
@@ -36,7 +36,7 @@ Configuration file
 
 * ``kind='doh'`` in :func:`net.listen` was renamed to ``kind='doh_legacy'``. It is recommended to switch to the new DoH implementation with ``kind='doh2'``.
 * :func:`verbose` is deprecated. In case you want to change logging level,
-  there is new function :func:`set_log_level`.
+  there is new function :func:`log_level`.
 
 Packagers & Developers
 ----------------------
index bfededb5ebfa7a84cae06a8fd3c4a55185b1b4ca..84246000aed72adf440021414a08746696746607 100644 (file)
@@ -36,7 +36,7 @@ function interactive_mode()
                   .. '8453 -> web interface\n'
                   .. '\n'
                   .. 'For verbose logging enter following command to prompt below:\n'
-                  .. 'set_log_level("debug")\n')
+                  .. 'log_level("debug")\n')
        end
        print_help()
 end
@@ -62,7 +62,7 @@ function debug_mode(qname, qtype)
        -- execute query right after start up and exit when the query is finished
        event.after(0, function()
                -- ultra verbose log
-               set_log_level('debug')
+               log_level('debug')
                policy.add(policy.all(policy.DEBUG_ALWAYS))
                log_debug(ffi.C.LOG_GRP_RESOLVER, 'starting DNS query for %s %s', qname, kres.tostring.type[qtype])
                local starttime = cqueues.monotime()
index 6279bb56373c16fab59deeac5282fb6eab08856c..63841ff29975a7b84f12641bf1bb77e2667363ae 100644 (file)
@@ -29,7 +29,7 @@ if detect_time_skew then
         modules.unload('detect_time_skew')
 end
 
-set_log_level('debug')
+log_level('debug')
 policy.add(policy.all(policy.DEBUG_ALWAYS))
 
 cache.open(1*MB)
index b1ae409e86b5ac160cfd2fc43580be14fac2774f..c4c286f61d4746cc0714122dd5389737fc9105dc 100644 (file)
@@ -26,7 +26,7 @@ end
 
 _hint_root_file('hints')
 cache.size = 2*MB
-set_log_level('debug')
+log_level('debug')
 policy.add(policy.all(policy.DEBUG_ALWAYS))
 {% endraw %}
 
index 3bcd645b80e0e9939909a2447bd6b5c6dc2723fe..dc18a1b1066b5afd76cdd0639f136d9f9b5b92d5 100644 (file)
@@ -63,7 +63,7 @@ end
 
 _hint_root_file('hints')
 cache.size = 2*MB
-set_log_level('debug')
+log_level('debug')
 policy.add(policy.all(policy.DEBUG_ALWAYS))
 {% endraw %}
 
index 47aaee1df03e138e7afcfd6ad85c98a031447871..cc0dbd5a906a445dc65ba3d3f3af1338554edabb 100644 (file)
@@ -27,7 +27,7 @@ if detect_time_skew then
 end
 
 cache.size = 2*MB
-set_log_level('debug')
+log_level('debug')
 policy.add(policy.all(policy.DEBUG_ALWAYS))
 policy.add(policy.all(policy.FORWARD('8.8.8.8')))
 {% endraw %}
index 1931d01d395aec0889c7ad50f120a3d38b8e3256..4fd6318046dbd677565823eedbc07a06a69bfefc 100644 (file)
--- a/lib/log.c
+++ b/lib/log.c
@@ -209,11 +209,11 @@ static void kr_gnutls_log_level_set()
        }
 }
 
-int kr_log_level_set(kr_log_level_t level)
+void kr_log_level_set(kr_log_level_t level)
 {
        if (level < LOG_CRIT || level > LOG_DEBUG) {
                kr_log_warning(SYSTEM, "invalid log level\n");
-               return kr_log_level;
+               return;
        }
 
        kr_log_level = level;
@@ -221,13 +221,7 @@ int kr_log_level_set(kr_log_level_t level)
 
        kr_gnutls_log_level_set();
 
-       return kr_log_level;
-
-}
-
-kr_log_level_t kr_log_level_get(void)
-{
-       return kr_log_level;
+       return;
 }
 
 void kr_log_add_group(enum kr_log_group group)
index 6353446a2b812aadbb1b6d0b90db263abf54643e..d81262f7930875cbf603341c7478f7e924dbd210 100644 (file)
--- a/lib/log.h
+++ b/lib/log.h
@@ -146,9 +146,7 @@ KR_EXPORT KR_PRINTF(6)
 void kr_log_fmt(enum kr_log_group group, kr_log_level_t level, const char *file, const char *line,
                const char *func, const char *fmt, ...);
 KR_EXPORT
-int kr_log_level_set(kr_log_level_t level);
-KR_EXPORT
-kr_log_level_t kr_log_level_get(void);
+void kr_log_level_set(kr_log_level_t level);
 KR_EXPORT
 void kr_log_target_set(kr_log_target_t target);
 
index 2b299dababab85a9ca39a0b2161466adba76c7bb..0471a2745cf5e3a0736fc5660ed93a144ce90a4e 100644 (file)
@@ -59,7 +59,7 @@ end
 
 _hint_root_file('hints')
 cache.size = 2*MB
-set_log_level('debug')
+log_level('debug')
 {% endraw %}
 
 net = { '{{SELF_ADDR}}' }
index 60fc082099eb7585f3a4064fd4771c1a78949115..0381f77e2c1de9be06e0b1b1c57cb2ed117274db 100644 (file)
@@ -34,7 +34,7 @@ policy.add(policy.suffix(policy.PASS, {todname('test.')}))
 
 _hint_root_file('hints')
 cache.size = 2*MB
-set_log_level('debug')
+log_level('debug')
 {% endraw %}
 
 net = { '{{SELF_ADDR}}' }
index b981f3bbb93fac86107afe8d62c2a7a1fe8cbdb5..fd90dfe71e11422dd6fb3b6653b9f56033ad9c15 100644 (file)
@@ -204,7 +204,7 @@ Following actions act on request and then processing continue until first non-ch
 .. py:attribute:: QTRACE
 
    Pretty-print DNS response packets from authoritative servers into debug logs for the query and its sub-queries.  It's useful for debugging weird DNS servers.
-   Note that debug-level logs are off by default; see :func:`set_log_level`.
+   Note that debug-level logs are off by default; see :func:`log_level`.
 
    .. code-block:: lua
 
@@ -215,7 +215,7 @@ Following actions act on request and then processing continue until first non-ch
 .. py:attribute:: REQTRACE
 
    Pretty-print DNS requests from clients into the verbose log. It's useful for debugging weird DNS clients.
-   Debug-level logging must be enabled for this policy to be effective; see :func:`set_log_level`.
+   Debug-level logging must be enabled for this policy to be effective; see :func:`log_level`.
    It makes most sense together with :ref:`mod-view` (enabling per-client)
    and probably with verbose logging those request (e.g. ``DEBUG_ALWAYS``).
 
index 31e28d7fd5892b5891cef74fd53a390e74df9e17..a897d17cc0fdd4d9f382eacf9e14589b5428ef54 100644 (file)
@@ -28,7 +28,7 @@ end
 
 _hint_root_file('hints')
 cache.size = 2*MB
-set_log_level('debug')
+log_level('debug')
 {% endraw %}
 
 net = { '{{SELF_ADDR}}' }
index 027331ffb91c343cde7bd907a5e45ce989a1d9c5..87873e840213985c5c9293ad233f9a1a819ca72c 100644 (file)
@@ -29,7 +29,7 @@ end
 
 _hint_root_file('hints')
 cache.size = 2*MB
-set_log_level('debug')
+log_level('debug')
 {% endraw %}
 
 net = { '{{SELF_ADDR}}' }
index 180d6186d51b9e4fb6e31fda58ae913e3de96eca..4ba83dd6a574a3d32e87ee0ceb3855de62a7884e 100644 (file)
@@ -27,7 +27,7 @@ end
 
 _hint_root_file('hints')
 cache.size = 2*MB
-set_log_level('debug')
+log_level('debug')
 {% endraw %}
 
 net = { '{{SELF_ADDR}}' }
index 05dcb2cf013bb9458f6fa2b8b7fc37ea2f42e43f..24befd767682af6439413b0dcd512fde29a143f8 100644 (file)
@@ -14,7 +14,7 @@ end
 policy.add(policy.suffix(policy.PASS, {todname('test.')}))
 
 cache.size = 2*MB
--- set_log_level('debug')
+-- log_level('debug')
 
 -- Self-checks on globals
 assert(help() ~= nil)
index cc52bc929cc04922d82d465561619de9daf1de5c..aed355193f23bb9795acc6f4c79625f352525264 100644 (file)
@@ -27,7 +27,7 @@ modules.load('rebinding < iterate')
 
 _hint_root_file('hints')
 cache.size = 2*MB
-set_log_level('debug')
+log_level('debug')
 net.ipv6 = false
 {% endraw %}
 
index b7d9ea1b78dfb676366d527f998f8c25c7575c22..1abe4e4dafc1692c1024812294c619077bf88a87 100644 (file)
@@ -25,7 +25,7 @@ end
 
 _hint_root_file('hints')
 cache.size = 2*MB
-set_log_level('debug')
+log_level('debug')
 {% endraw %}
 
 net = { '{{SELF_ADDR}}' }
index 6703a9d9da9a118012a35289dd108200fdafc40b..a74b609f7236f474fde0d898eacfa6f91193b786 100644 (file)
@@ -73,7 +73,7 @@ policy.add(policy.all(policy.DEBUG_ALWAYS))
 policy.add(policy.suffix(policy.PASS, {todname('test.')}))
 prepare_cache()
 
-set_log_level('debug')
+log_level('debug')
 modules.load('renumber < cache')
 renumber.config({
        -- Source subnet, destination subnet
index d619189664a2205544e120956d592f0067156313..85708336c89284cdfd7aae3f0f3f7ebda9c7a51d 100644 (file)
@@ -27,7 +27,7 @@ end
 
 _hint_root_file('hints')
 cache.size = 2*MB
-set_log_level('debug')
+log_level('debug')
 {% endraw %}
 
 {% if DO_IP6 == "true" %}
index 12fc26519d4097eab6ca409078e3a83fa92ece8d..4db7caaba32034c1e281e99e3c829a116e3cbb3c 100644 (file)
@@ -83,7 +83,7 @@ end
 
 _hint_root_file('hints')
 cache.size = 2*MB
-set_log_level('debug')
+log_level('debug')
 {% endraw %}
 
 net = { '{{SELF_ADDR}}' }
index 74f5586c14529ae4cee6069fd8816649ddb1221b..da319a281b957e6adb64580e9ad3703ce3823517 100644 (file)
@@ -22,7 +22,7 @@ end
 
 policy.add(policy.suffix(policy.PASS, {todname('test.')}))
 cache.size = 2*MB
-set_log_level('debug')
+log_level('debug')
 {% endraw %}
 
 modules.load('hints')
index 378a167956f15dc6fd88e834ce9a146061d583a6..263404d7eb6398b775bcfc86e5ea00dd228941f3 100644 (file)
@@ -38,7 +38,7 @@ end
 
 policy.add(policy.suffix(policy.PASS, {todname('test.')}))
 cache.size = 2*MB
-set_log_level('debug')
+log_level('debug')
 {% endraw %}
 
 modules.load('hints')
index 2d85b742e63555c9c115bf8b9cac4bd8cd430a85..3dd8d92c36bd480924f10db45550207ab35997c0 100644 (file)
@@ -31,7 +31,7 @@ end
 
 _hint_root_file('hints')
 cache.size = 2*MB
-set_log_level('debug')
+log_level('debug')
 {% endraw %}
 
 net = { '{{SELF_ADDR}}' }
index 042da2a864c157e4b7d99323013610b42e8bd9a7..f04dce244594597357f60b1ba6fc81f9d1708edf 100644 (file)
@@ -33,7 +33,7 @@ trust_anchors.remove('.')
 
 _hint_root_file('hints')
 cache.size = 2*MB
-set_log_level('debug')
+log_level('debug')
 {% endraw %}
 
 net = { '{{SELF_ADDR}}' }
index 1adaef716647e52c05b165a74a46b533d75bb031..be6efd4c7951082df52ec5efce5542924c681a82 100755 (executable)
@@ -50,7 +50,7 @@ k = 1 while k <= #arg do
                verbose = true
        elseif v == '-d' then
                verbose = true
-               table.insert(config, 'set_log_level("debug")')
+               table.insert(config, 'log_level("debug")')
        elseif v == '-4' then
                table.insert(config, 'net.ipv6 = false')
        elseif v == '-6' then
index aa9135e46c4270894fc5342bfdcf202b9e2ba68f..550c224779c357481ccc74e50d4b986e7706e2fa 100644 (file)
@@ -5,7 +5,7 @@ modules = {
 }
 
 {% if kresd.verbose %}
-set_log_level('debug')
+log_level('debug')
 {% endif %}
 
 {% if kresd.ip %}