From f8fbf1dd71c081539865c2eddb14a71f10c26fe2 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Tue, 1 Sep 2015 12:23:46 +0100 Subject: [PATCH] Update logging in lua modules. --- src/plugins/lua/dmarc.lua | 12 +++++------ src/plugins/lua/emails.lua | 8 ++++---- src/plugins/lua/ip_score.lua | 4 ++-- src/plugins/lua/multimap.lua | 20 +++++++++++-------- src/plugins/lua/once_received.lua | 3 ++- src/plugins/lua/phishing.lua | 6 +++--- src/plugins/lua/ratelimit.lua | 20 +++++++++---------- src/plugins/lua/rbl.lua | 4 ++-- src/plugins/lua/settings.lua | 22 ++++++++++----------- src/plugins/lua/spamassassin.lua | 33 +++++++++++++++++-------------- src/plugins/lua/trie.lua | 14 ++++++------- 11 files changed, 77 insertions(+), 69 deletions(-) diff --git a/src/plugins/lua/dmarc.lua b/src/plugins/lua/dmarc.lua index 978070dd8..d965cefc3 100644 --- a/src/plugins/lua/dmarc.lua +++ b/src/plugins/lua/dmarc.lua @@ -79,11 +79,11 @@ local function dmarc_callback(task) local function dmarc_report_cb(task, err, data) if not err then - rspamd_logger.info(string.format('<%s> dmarc report saved for %s', - task:get_message_id(), from[1]['domain'])) + rspamd_logger.infox(task, '<%1> dmarc report saved for %2', + task:get_message_id(), from[1]['domain']) else - rspamd_logger.err(string.format('<%s> dmarc report is not saved for %s: %s', - task:get_message_id(), from[1]['domain'], err)) + rspamd_logger.errx(task, '<%1> dmarc report is not saved for %2: %3', + task:get_message_id(), from[1]['domain'], err) end end @@ -286,11 +286,11 @@ if not opts or type(opts) ~= 'table' then end if not opts['servers'] then - rspamd_logger.err('no servers are specified for dmarc stats') + rspamd_logger.errx(rspamd_config, 'no servers are specified for dmarc stats') else upstreams = upstream_list.create(opts['servers'], default_port) if not upstreams then - rspamd_logger.err('cannot parse servers parameter') + rspamd_logger.errx(rspamd_config, 'cannot parse servers parameter') end end diff --git a/src/plugins/lua/emails.lua b/src/plugins/lua/emails.lua index 3fce13421..d3a00b29a 100644 --- a/src/plugins/lua/emails.lua +++ b/src/plugins/lua/emails.lua @@ -36,7 +36,7 @@ local logger = require "rspamd_logger" local function check_email_rule(task, rule, addr) local function emails_dns_cb(resolver, to_resolve, results, err) if results then - logger.infox('<%1> email: [%2] resolved for symbol: %3', + logger.infox(task, '<%1> email: [%2] resolved for symbol: %3', task:get_message_id(), to_resolve, rule['symbol']) task:insert_result(rule['symbol'], 1) end @@ -58,14 +58,14 @@ local function check_email_rule(task, rule, addr) local key = addr:get_host() if rule['map']:get_key(key) then task:insert_result(rule['symbol'], 1) - logger.infox('<%1> email: \'%2\' is found in list: %3', + logger.infox(task, '<%1> email: \'%2\' is found in list: %3', task:get_message_id(), key, rule['symbol']) end else local key = string.format('%s@%s', addr:get_user(), addr:get_host()) if rule['map']:get_key(key) then task:insert_result(rule['symbol'], 1) - logger.infox('<%1> email: \'%2\' is found in list: %3', + logger.infox(task, '<%1> email: \'%2\' is found in list: %3', task:get_message_id(), key, rule['symbol']) end end @@ -102,7 +102,7 @@ if opts and type(opts) == 'table' then rule['map'] = rspamd_config:add_hash_map (rule['name']) end if not rule['symbol'] or (not rule['map'] and not rule['dnsbl']) then - logger.err('incomplete rule') + logger.errx(rspamd_config, 'incomplete rule') else table.insert(rules, rule) end diff --git a/src/plugins/lua/ip_score.lua b/src/plugins/lua/ip_score.lua index d2ba8d3ba..9072ca16b 100644 --- a/src/plugins/lua/ip_score.lua +++ b/src/plugins/lua/ip_score.lua @@ -135,7 +135,7 @@ local ip_score_set = function(task) local score_set_cb = function(task, err, data) if err then - rspamd_logger.infox('got error while IP score changing: %1', err) + rspamd_logger.infox(task, 'got error while IP score changing: %1', err) end end @@ -335,7 +335,7 @@ local configure_ip_score_module = function() if options['servers'] and options['servers'] ~= '' then upstreams = upstream_list.create(options['servers'], default_port) if not upstreams then - rspamd_logger.err('no servers are specified') + rspamd_logger.errx(rspamd_config, 'no servers are specified') end end if options['whitelist'] then diff --git a/src/plugins/lua/multimap.lua b/src/plugins/lua/multimap.lua index 3f41921f1..d821902ea 100644 --- a/src/plugins/lua/multimap.lua +++ b/src/plugins/lua/multimap.lua @@ -148,13 +148,13 @@ end local function add_multimap_rule(key, newrule) if not newrule['map'] then - rspamd_logger.err('incomplete rule') + rspamd_logger.errx(rspamd_config, 'incomplete rule') return nil end if not newrule['symbol'] and key then newrule['symbol'] = key elseif not newrule['symbol'] then - rspamd_logger.err('incomplete rule') + rspamd_logger.errx(rspamd_config, 'incomplete rule') return nil end -- Check cdb flag @@ -164,22 +164,26 @@ local function add_multimap_rule(key, newrule) if newrule['cdb'] then return newrule else - rspamd_logger.warn('Cannot add rule: map doesn\'t exists: ' .. newrule['map']) + rspamd_logger.warnx(rspamd_config, 'Cannot add rule: map doesn\'t exists: %1', + newrule['map']) end else if newrule['type'] == 'ip' then - newrule['radix'] = rspamd_config:add_radix_map (newrule['map'], newrule['description']) + newrule['radix'] = rspamd_config:add_radix_map (newrule['map'], + newrule['description']) if newrule['radix'] then return newrule else - rspamd_logger.warn('Cannot add rule: map doesn\'t exists: ' .. newrule['map']) + rspamd_logger.warnx(rspamd_config, 'Cannot add rule: map doesn\'t exists: %1', + newrule['map']) end elseif newrule['type'] == 'header' or newrule['type'] == 'rcpt' or newrule['type'] == 'from' then newrule['hash'] = rspamd_config:add_hash_map (newrule['map'], newrule['description']) if newrule['hash'] then return newrule else - rspamd_logger.warn('Cannot add rule: map doesn\'t exists: ' .. newrule['map']) + rspamd_logger.warnx(rspamd_config, 'Cannot add rule: map doesn\'t exists: %1', + newrule['map']) end elseif newrule['type'] == 'dnsbl' then return newrule @@ -195,12 +199,12 @@ if opts and type(opts) == 'table' then if type(m) == 'table' then local rule = add_multimap_rule(k, m) if not rule then - rspamd_logger.err('cannot add rule: "'..k..'"') + rspamd_logger.errx(rspamd_config, 'cannot add rule: "'..k..'"') else table.insert(rules, rule) end else - rspamd_logger.err('parameter ' .. k .. ' is invalid, must be an object') + rspamd_logger.errx(rspamd_config, 'parameter ' .. k .. ' is invalid, must be an object') end end -- add fake symbol to check all maps inside a single callback diff --git a/src/plugins/lua/once_received.lua b/src/plugins/lua/once_received.lua index f4502e504..9d173359a 100644 --- a/src/plugins/lua/once_received.lua +++ b/src/plugins/lua/once_received.lua @@ -39,7 +39,8 @@ local function check_quantity_received (task) if not results then task:insert_result(symbol_strict, 1) else - rspamd_logger.info(string.format('SMTP resolver failed to resolve: %s is %s', to_resolve, results[1])) + rspamd_logger.infox(task, 'SMTP resolver failed to resolve: %1 is %2', + to_resolve, results[1]) local i = true for _,h in ipairs(bad_hosts) do if string.find(results[1], h) then diff --git a/src/plugins/lua/phishing.lua b/src/plugins/lua/phishing.lua index 964d3e66d..1def285e8 100644 --- a/src/plugins/lua/phishing.lua +++ b/src/plugins/lua/phishing.lua @@ -58,7 +58,7 @@ local function phishing_cb(task) -- Use distance to penalize the total weight weight = util.tanh(3 * (1 - dist + 0.1)) end - rspamd_logger.debugx("distance: %1 -> %2: %3", tld, ptld, dist) + rspamd_logger.debugx(task, "distance: %1 -> %2: %3", tld, ptld, dist) if #redirector_domains > 0 then for _,rule in ipairs(redirector_domains) do @@ -109,10 +109,10 @@ local function phishing_map(mapname, phishmap) local rule = {symbol = sym, map = rmap} table.insert(phishmap, rule) else - rspamd_logger.info('cannot add map: ' .. map .. ' for symbol: ' .. sym) + rspamd_logger.infox(rspamd_config, 'cannot add map: ' .. map .. ' for symbol: ' .. sym) end else - rspamd_logger.info(mapname .. ' option must be in format :') + rspamd_logger.infox(rspamd_config, mapname .. ' option must be in format :') end end end diff --git a/src/plugins/lua/ratelimit.lua b/src/plugins/lua/ratelimit.lua index 1c1dc4dd6..a6be7b953 100644 --- a/src/plugins/lua/ratelimit.lua +++ b/src/plugins/lua/ratelimit.lua @@ -100,7 +100,7 @@ local function check_limits(task, args) --- Called when value was set on server local function rate_set_key_cb(task, err, data) if err then - rspamd_logger.info('got error while getting limit: ' .. err) + rspamd_logger.infox(task, 'got error while getting limit: %1', err) upstream:fail() else upstream:ok() @@ -126,7 +126,7 @@ local function check_limits(task, args) end end, _.zip(parse_limits(data), _.map(function(a) return a[1] end, args))) elseif err then - rspamd_logger.info('got error while getting limit: ' .. err) + rspamd_logger.infox(task, 'got error while getting limit: %1', err) upstream:fail() end end @@ -147,7 +147,7 @@ local function set_limits(task, args) local function rate_set_key_cb(task, err, data) if err then - rspamd_logger.info('got error while setting limit: ' .. err) + rspamd_logger.infox(task, 'got error while setting limit: %1', err) upstream:fail() else upstream:ok() @@ -181,7 +181,7 @@ local function set_limits(task, args) local cmd = generate_format_string(values, true) rspamd_redis.make_request(task, addr, rate_set_key_cb, cmd, values) elseif err then - rspamd_logger.info('got error while setting limit: ' .. err) + rspamd_logger.infox(task, 'got error while setting limit: %1', err) upstream:fail() end end @@ -221,7 +221,7 @@ local function rate_test_set(task, func) if ip and ip:is_valid() and whitelisted_ip then if whitelisted_ip:get_key(ip) then -- Do not check whitelisted ip - rspamd_logger.info('skip ratelimit for whitelisted IP') + rspamd_logger.infox(task, 'skip ratelimit for whitelisted IP') return end end @@ -234,7 +234,7 @@ local function rate_test_set(task, func) _.any(function(w) return r == w end, whitelisted_rcpts) end, rcpts_user) then - rspamd_logger.info('skip ratelimit for whitelisted recipient') + rspamd_logger.infox(task, 'skip ratelimit for whitelisted recipient') return end end @@ -319,7 +319,7 @@ local function parse_limit(str) end if table.maxn(params) ~= 3 then - rspamd_logger.err('invalid limit definition: ' .. str) + rspamd_logger.errx(rspamd_config, 'invalid limit definition: ' .. str) return end @@ -336,7 +336,7 @@ local function parse_limit(str) elseif params[1] == 'user' then set_limit(settings['user'], params[2], params[3]) else - rspamd_logger.err('invalid limit type: ' .. params[1]) + rspamd_logger.errx(rspamd_config, 'invalid limit type: ' .. params[1]) end end @@ -376,11 +376,11 @@ if opts then end if not opts['servers'] then - rspamd_logger.err('no servers are specified') + rspamd_logger.errx(rspamd_config, 'no servers are specified') else upstreams = upstream_list.create(opts['servers'], default_port) if not upstreams then - rspamd_logger.err('no servers are specified') + rspamd_logger.errx(rspamd_config, 'no servers are specified') else rspamd_config:register_pre_filter(rate_test) rspamd_config:register_post_filter(rate_set) diff --git a/src/plugins/lua/rbl.lua b/src/plugins/lua/rbl.lua index 45782ba19..6f6c17c7b 100644 --- a/src/plugins/lua/rbl.lua +++ b/src/plugins/lua/rbl.lua @@ -117,8 +117,8 @@ local function rbl_cb (task) if thisrbl['unknown'] and thisrbl['symbol'] then task:insert_result(thisrbl['symbol'], 1) else - rspamd_logger.err('RBL ' .. thisrbl['rbl'] .. - ' returned unknown result ' .. ipstr) + rspamd_logger.errx(task, 'RBL %1 returned unknown result: %2', + thisrbl['rbl'], ipstr) end end end diff --git a/src/plugins/lua/settings.lua b/src/plugins/lua/settings.lua index dbf95d074..951893acf 100644 --- a/src/plugins/lua/settings.lua +++ b/src/plugins/lua/settings.lua @@ -219,7 +219,7 @@ local function check_settings(task) return end - rspamd_logger.info("check for settings") + rspamd_logger.infox(task, "check for settings") local ip = task:get_from_ip() local from = task:get_from() local rcpt = task:get_recipients() @@ -244,8 +244,8 @@ local function check_settings(task) for name, rule in pairs(settings[pri]) do local rule = check_specific_setting(name, rule, ip, from, rcpt, user) if rule then - rspamd_logger.info(string.format("<%s> apply settings according to rule %s", - task:get_message_id(), name)) + rspamd_logger.infox(task, "<%1> apply settings according to rule %2", + task:get_message_id(), name) task:set_settings(rule) end end @@ -255,7 +255,7 @@ local function check_settings(task) end -- Process settings based on their priority -local function process_settings_table(tbl) +local function process_settings_table(task, tbl) local get_priority = function(elt) local pri_tonum = function(p) if p then @@ -300,7 +300,7 @@ local function process_settings_table(tbl) out[1] = res out[2] = 0 else - rspamd_logger.err("bad IP address: " .. ip) + rspamd_logger.errx(task, "bad IP address: " .. ip) return nil end else @@ -311,7 +311,7 @@ local function process_settings_table(tbl) out[1] = res out[2] = mask else - rspamd_logger.err("bad IP address: " .. ip) + rspamd_logger.errx(task, "bad IP address: " .. ip) return nil end end @@ -336,7 +336,7 @@ local function process_settings_table(tbl) if re then out['regexp'] = re else - rspamd_logger.err("bad regexp: " .. addr) + rspamd_logger.errx(task, "bad regexp: " .. addr) return nil end @@ -405,7 +405,7 @@ local function process_settings_table(tbl) elseif elt['whitelist'] or elt['want_spam'] then out['whitelist'] = true else - rspamd_logger.err("no actions in settings: " .. name) + rspamd_logger.errx(rspamd_config, "no actions in settings: " .. name) return nil end @@ -441,7 +441,7 @@ local function process_settings_table(tbl) end, ft) settings_initialized = true - rspamd_logger.infox('loaded %1 elements of settings', nrules) + rspamd_logger.infox(rspamd_config, 'loaded %1 elements of settings', nrules) return true end @@ -452,7 +452,7 @@ local function process_settings_map(string) local parser = ucl.parser() local res,err = parser:parse_string(string) if not res then - rspamd_logger.warn('cannot parse settings map: ' .. err) + rspamd_logger.warnx(rspamd_config, 'cannot parse settings map: ' .. err) else local obj = parser:get_object() if obj['settings'] then @@ -466,7 +466,7 @@ end if set_section[1] and type(set_section[1]) == "string" then -- Just a map of ucl if not rspamd_config:add_map(set_section[1], "settings map", process_settings_map) then - rspamd_logger.errx('cannot load settings from %1', set_section) + rspamd_logger.errx(rspamd_config, 'cannot load settings from %1', set_section) end elseif type(set_section) == "table" then process_settings_table(set_section) diff --git a/src/plugins/lua/spamassassin.lua b/src/plugins/lua/spamassassin.lua index 212645513..175b6f6e8 100644 --- a/src/plugins/lua/spamassassin.lua +++ b/src/plugins/lua/spamassassin.lua @@ -149,8 +149,8 @@ local function handle_header_def(hline, cur_rule) elseif func == 'case' then cur_param['strong'] = true else - rspamd_logger.warn(string.format('Function %s is not supported in %s', - func, cur_rule['symbol'])) + rspamd_logger.warnx(rspamd_config, 'Function %1 is not supported in %2', + func, cur_rule['symbol']) end end, _.tail(args)) table.insert(hdr_params, cur_param) @@ -207,7 +207,7 @@ local function gen_eval_rule(arg) if r then r:match(h) else - rspamd_logger.infox('cannot create regexp %1', re) + rspamd_logger.infox(rspamd_config, 'cannot create regexp %1', re) return 0 end end @@ -241,7 +241,8 @@ local function maybe_parse_sa_function(line) arg = elts[2] local func_cache = {} - rspamd_logger.debugx('trying to parse SA function %1 with args %2', elts[1], elts[2]) + rspamd_logger.debugx(rspamd_config, 'trying to parse SA function %1 with args %2', + elts[1], elts[2]) local substitutions = { {'^exists:', function(task) -- filter @@ -260,7 +261,8 @@ local function maybe_parse_sa_function(line) end if not func then - rspamd_logger.errx('cannot find appropriate eval rule for function %1', arg) + rspamd_logger.errx(rspamd_config, 'cannot find appropriate eval rule for function %1', + arg) else return func(task) end @@ -388,8 +390,8 @@ local function process_sa_conf(f) cur_rule['re'] = rspamd_regexp.create_cached(cur_rule['re_expr']) if not cur_rule['re'] then - rspamd_logger.warn(string.format("Cannot parse regexp '%s' for %s", - cur_rule['re_expr'], cur_rule['symbol'])) + rspamd_logger.warnx(rspamd_config, "Cannot parse regexp '%1' for %2", + cur_rule['re_expr'], cur_rule['symbol']) else handle_header_def(words[3], cur_rule) end @@ -410,7 +412,7 @@ local function process_sa_conf(f) cur_rule['function'] = func valid_rule = true else - rspamd_logger.infox('unknown function %1', args) + rspamd_logger.infox(rspamd_config, 'unknown function %1', args) end end elseif words[1] == "body" and slash then @@ -533,7 +535,8 @@ end if freemail_domains then freemail_trie = rspamd_trie.create(freemail_domains) - rspamd_logger.infox('loaded %1 freemail domains definitions', #freemail_domains) + rspamd_logger.infox(rspamd_config, 'loaded %1 freemail domains definitions', + #freemail_domains) end local function sa_regexp_match(data, re, raw, rule) @@ -644,10 +647,10 @@ _.each(function(r) if res then local nre = rspamd_regexp.create_cached(nexpr) if not nre then - rspamd_logger.errx('cannot apply replacement for rule %1', r) + rspamd_logger.errx(rspamd_config, 'cannot apply replacement for rule %1', r) rule['re'] = nil else - rspamd_logger.debugx('replace %1 -> %2', r, nexpr) + rspamd_logger.debugx(rspamd_config, 'replace %1 -> %2', r, nexpr) rule['re'] = nre rule['re_expr'] = nexpr nre:set_limit(match_limit) @@ -855,13 +858,13 @@ local function process_atom(atom, task) end if not res then - rspamd_logger.debugx('atom: %1, NULL result', atom) + rspamd_logger.debugx(task, 'atom: %1, NULL result', atom) elseif res > 0 then - rspamd_logger.debugx('atom: %1, result: %2', atom, res) + rspamd_logger.debugx(task, 'atom: %1, result: %2', atom, res) end return res else - rspamd_logger.debugx('Cannot find atom ' .. atom) + rspamd_logger.debugx(task, 'Cannot find atom ' .. atom) end return 0 end @@ -888,7 +891,7 @@ _.each(function(k, r) expression = rspamd_expression.create(r['meta'], {parse_atom, process_atom}, sa_mempool) if not expression then - rspamd_logger.err('Cannot parse expression ' .. r['meta']) + rspamd_logger.errx(rspamd_config, 'Cannot parse expression ' .. r['meta']) else if r['score'] then rspamd_config:set_metric_symbol(k, r['score'], r['description']) diff --git a/src/plugins/lua/trie.lua b/src/plugins/lua/trie.lua index d41d12b5d..fa5e61508 100644 --- a/src/plugins/lua/trie.lua +++ b/src/plugins/lua/trie.lua @@ -59,7 +59,7 @@ local function tries_callback(task) local pattern = patterns[idx] if param['multi'] or not matched[pattern] then - rspamd_logger.debugx("<%1> matched pattern %2 at pos %3", + rspamd_logger.debugx(task, "<%1> matched pattern %2 at pos %3", task:get_message_id(), pattern, pos) task:insert_result(param['symbol'], 1.0) if not param['multi'] then @@ -96,10 +96,10 @@ local function process_trie_file(symbol, cf) file = io.open(cf['file']) if not file then - rspamd_logger.errx('Cannot open trie file %1', cf['file']) + rspamd_logger.errx(rspamd_config, 'Cannot open trie file %1', cf['file']) else if cf['binary'] then - rspamd_logger.errx('binary trie patterns are not implemented yet: %1', + rspamd_logger.errx(rspamd_config, 'binary trie patterns are not implemented yet: %1', cf['file']) else for line in file:lines() do @@ -114,7 +114,7 @@ local function process_trie_conf(symbol, cf) local raw = false if type(cf) ~= 'table' then - rspamd_logger.errx('invalid value for symbol %1: "%2", expected table', + rspamd_logger.errx(rspamd_config, 'invalid value for symbol %1: "%2", expected table', symbol, cf) return end @@ -138,19 +138,19 @@ if opts then if #raw_patterns > 0 then raw_trie = rspamd_trie.create(raw_patterns) - rspamd_logger.infox('registered raw search trie from %1 patterns', #raw_patterns) + rspamd_logger.infox(rspamd_config, 'registered raw search trie from %1 patterns', #raw_patterns) end if #mime_patterns > 0 then mime_trie = rspamd_trie.create(mime_patterns) - rspamd_logger.infox('registered mime search trie from %1 patterns', #mime_patterns) + rspamd_logger.infox(rspamd_config, 'registered mime search trie from %1 patterns', #mime_patterns) end local id = -1 if mime_trie or raw_trie then id = rspamd_config:register_callback_symbol('TRIE', 1.0, tries_callback) else - rspamd_logger.err('no tries defined') + rspamd_logger.errx(rspamd_config, 'no tries defined') end if id ~= -1 then -- 2.39.5