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
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
:returns: integer
@ -2889,12 +2896,12 @@ TXN class
.. js:function:: TXN.set_loglevel(txn, loglevel)
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 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`,
:js:attr:`core.err`, :js:attr:`core.warning`, :js:attr:`core.notice`,
:see: :js:attr:`core.silent`, :js:attr:`core.emerg`, :js:attr:`core.alert`,
: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: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));
ll = MAY_LJMP(luaL_checkinteger(L, 2));
if (ll < 0 || ll > 7)
WILL_LJMP(luaL_argerror(L, 2, "Bad log level. It must be between 0 and 7"));
if (ll < -1 || ll > NB_LOG_LEVELS)
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;
}
@ -13345,6 +13347,7 @@ lua_State *hlua_init_state(int thread_num)
hlua_class_const_int(L, "thread", thread_num);
/* Push the loglevel constants. */
hlua_class_const_int(L, "silent", -1);
for (i = 0; i < NB_LOG_LEVELS; i++)
hlua_class_const_int(L, log_levels[i], i);