MINOR: hlua: Be able to disable logging from lua

Add core.silent (-1) value to be able to disable logging via
TXN:set_loglevel() call. Otherwise, there is no way to do so and it may be
handy. This special value cannot be used with TXN:log() function.

This patch may be backported if necessary.
This commit is contained in:
Christopher Faulet 2024-02-29 15:41:17 +01:00
parent 75fb0afde4
commit 31ec9f18bb
2 changed files with 16 additions and 6 deletions

View File

@ -159,6 +159,13 @@ Core class
The "core" class is static, it is not possible to create a new object of this The "core" class is static, it is not possible to create a new object of this
type. type.
.. js:attribute:: core.silent
:returns: integer
This attribute is an integer, it contains the value -1. It is a special value
used to disable logging.
.. js:attribute:: core.emerg .. js:attribute:: core.emerg
:returns: integer :returns: integer
@ -2889,12 +2896,12 @@ TXN class
.. js:function:: TXN.set_loglevel(txn, loglevel) .. js:function:: TXN.set_loglevel(txn, loglevel)
Is used to change the log level of the current request. The "loglevel" must Is used to change the log level of the current request. The "loglevel" must
be an integer between 0 and 7. be an integer between 0 and 7 or the special value -1 to disable logging.
:param class_txn txn: The class txn object containing the data. :param class_txn txn: The class txn object containing the data.
:param integer loglevel: The required log level. This variable can be one of :param integer loglevel: The required log level. This variable can be one of
:see: :js:attr:`core.emerg`, :js:attr:`core.alert`, :js:attr:`core.crit`, :see: :js:attr:`core.silent`, :js:attr:`core.emerg`, :js:attr:`core.alert`,
:js:attr:`core.err`, :js:attr:`core.warning`, :js:attr:`core.notice`, :js:attr:`core.crit`, :js:attr:`core.err`, :js:attr:`core.warning`, :js:attr:`core.notice`,
:js:attr:`core.info`, :js:attr:`core.debug` (log level definitions) :js:attr:`core.info`, :js:attr:`core.debug` (log level definitions)
.. js:function:: TXN.set_mark(txn, mark) .. js:function:: TXN.set_mark(txn, mark)

View File

@ -8243,10 +8243,12 @@ __LJMP static int hlua_txn_set_loglevel(lua_State *L)
htxn = MAY_LJMP(hlua_checktxn(L, 1)); htxn = MAY_LJMP(hlua_checktxn(L, 1));
ll = MAY_LJMP(luaL_checkinteger(L, 2)); ll = MAY_LJMP(luaL_checkinteger(L, 2));
if (ll < 0 || ll > 7) if (ll < -1 || ll > NB_LOG_LEVELS)
WILL_LJMP(luaL_argerror(L, 2, "Bad log level. It must be between 0 and 7")); WILL_LJMP(luaL_argerror(L, 2, "Bad log level. It must be one of the following value:"
" core.silent(-1), core.emerg(0), core.alert(1), core.crit(2), core.error(3),"
" core.warning(4), core.notice(5), core.info(6) or core.debug(7)"));
htxn->s->logs.level = ll + 1; htxn->s->logs.level = (ll == -1) ? ll : ll + 1;
return 0; return 0;
} }
@ -13345,6 +13347,7 @@ lua_State *hlua_init_state(int thread_num)
hlua_class_const_int(L, "thread", thread_num); hlua_class_const_int(L, "thread", thread_num);
/* Push the loglevel constants. */ /* Push the loglevel constants. */
hlua_class_const_int(L, "silent", -1);
for (i = 0; i < NB_LOG_LEVELS; i++) for (i = 0; i < NB_LOG_LEVELS; i++)
hlua_class_const_int(L, log_levels[i], i); hlua_class_const_int(L, log_levels[i], i);