* @param {any} args list of arguments to be replaced in %<number> positions
*/
LUA_FUNCTION_DEF (logger, debugx);
+
+/***
+ * @function logger.debugm(module, id, fmt[, args)
+ * Extended interface to make a debug log message
+ * @param {string} module debug module
+ * @param {task|cfg|pool|string} id id to log
+ * @param {string} fmt format string, arguments are encoded as %<number>
+ * @param {any} args list of arguments to be replaced in %<number> positions
+ */
+LUA_FUNCTION_DEF (logger, debugm);
/***
* @function logger.slog(fmt[, args)
* Create string replacing percent params with corresponding arguments
LUA_INTERFACE_DEF (logger, warnx),
LUA_INTERFACE_DEF (logger, infox),
LUA_INTERFACE_DEF (logger, debugx),
+ LUA_INTERFACE_DEF (logger, debugm),
LUA_INTERFACE_DEF (logger, slog),
{"__tostring", rspamd_lua_class_tostring},
{NULL, NULL}
return lua_logger_logx (L, G_LOG_LEVEL_DEBUG, FALSE);
}
+static gint
+lua_logger_debugm (lua_State *L)
+{
+ gchar logbuf[RSPAMD_LOGBUF_SIZE - 128];
+ const gchar *uid = NULL, *module = NULL;
+ gboolean ret;
+
+ module = luaL_checkstring (L, 1);
+
+ if (lua_type (L, 2) == LUA_TSTRING) {
+ uid = luaL_checkstring (L, 2);
+ }
+ else {
+ uid = lua_logger_get_id (L, 2);
+ }
+
+ if (uid && module && lua_type (L, 3) == LUA_TSTRING) {
+ ret = lua_logger_log_format (L, 3, FALSE, logbuf, sizeof (logbuf) - 1);
+
+ if (ret) {
+ lua_common_log_line (G_LOG_LEVEL_DEBUG, L, logbuf, uid, module);
+ }
+ }
+ else {
+ return luaL_error (L, "invalid arguments");
+ }
+
+ return 0;
+}
+
+
+
static gint
lua_logger_slog (lua_State *L)
{