diff --git a/doc/lua-api/index.rst b/doc/lua-api/index.rst index 05b0c636b..8674d57eb 100644 --- a/doc/lua-api/index.rst +++ b/doc/lua-api/index.rst @@ -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) diff --git a/src/hlua.c b/src/hlua.c index fdbd2cbc2..d915b1087 100644 --- a/src/hlua.c +++ b/src/hlua.c @@ -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);