summaryrefslogtreecommitdiffstats
path: root/src/lua/lua_logger.c
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2018-08-13 15:04:42 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2018-08-13 15:04:42 +0100
commit4ba8e13af571398fbaa8877c999ee77fd39f39ac (patch)
treefab5ea72b716dd894395601e995b368869f5bedc /src/lua/lua_logger.c
parent149a6439a79d45f4ec0fb683385e4a44e3cf2862 (diff)
downloadrspamd-4ba8e13af571398fbaa8877c999ee77fd39f39ac.tar.gz
rspamd-4ba8e13af571398fbaa8877c999ee77fd39f39ac.zip
[Minor] Fix conditional debugging
Diffstat (limited to 'src/lua/lua_logger.c')
-rw-r--r--src/lua/lua_logger.c25
1 files changed, 23 insertions, 2 deletions
diff --git a/src/lua/lua_logger.c b/src/lua/lua_logger.c
index fe2fe7d28..75c2984c6 100644
--- a/src/lua/lua_logger.c
+++ b/src/lua/lua_logger.c
@@ -141,7 +141,7 @@ LUA_FUNCTION_DEF (logger, debugm);
LUA_FUNCTION_DEF (logger, slog);
/***
- * @function logger.logx(level, id, fmt[, args)
+ * @function logger.logx(level, module, id, fmt[, args)
* Extended interface to make a generic log message on any level
* @param {number} log level as a number (see GLogLevelFlags enum for values)
* @param {task|cfg|pool|string} id id to log
@@ -804,8 +804,29 @@ lua_logger_logx (lua_State *L)
{
LUA_TRACE_POINT;
GLogLevelFlags flags = lua_tonumber (L, 1);
+ const gchar *modname = lua_tostring (L, 2), *uid = NULL;
+ gchar logbuf[RSPAMD_LOGBUF_SIZE - 128];
+ gboolean ret;
+
+ if (lua_type (L, 3) == LUA_TSTRING) {
+ uid = luaL_checkstring (L, 3);
+ }
+ else {
+ uid = lua_logger_get_id (L, 3, NULL);
+ }
- return lua_logger_do_log (L, flags, FALSE, 2);
+ if (uid && modname && lua_type (L, 4) == LUA_TSTRING) {
+ ret = lua_logger_log_format (L, 4, FALSE, logbuf, sizeof (logbuf) - 1);
+
+ if (ret) {
+ lua_common_log_line (flags, L, logbuf, uid, modname);
+ }
+ }
+ else {
+ return luaL_error (L, "invalid arguments");
+ }
+
+ return 0;
}