]> source.dussan.org Git - rspamd.git/commitdiff
Update logging in lua modules.
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 1 Sep 2015 11:23:46 +0000 (12:23 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 1 Sep 2015 11:23:46 +0000 (12:23 +0100)
src/plugins/lua/dmarc.lua
src/plugins/lua/emails.lua
src/plugins/lua/ip_score.lua
src/plugins/lua/multimap.lua
src/plugins/lua/once_received.lua
src/plugins/lua/phishing.lua
src/plugins/lua/ratelimit.lua
src/plugins/lua/rbl.lua
src/plugins/lua/settings.lua
src/plugins/lua/spamassassin.lua
src/plugins/lua/trie.lua

index 978070dd891e97166392d49ed1a1ed53d5b0612c..d965cefc3384b2cb25a61407dbcf2d67900a5f83 100644 (file)
@@ -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
 
index 3fce134211277312064c9c8d0f193ee3fd5bd8d4..d3a00b29ae8d6dca87308ef503c29489f4a9e45a 100644 (file)
@@ -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
index d2ba8d3ba6920668559eb75873c24b882aa411da..9072ca16b2db1eb518b41e374345871d4557f68a 100644 (file)
@@ -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
index 3f41921f1343bcfdfc431712383d39c4b3bda53d..d821902eaa91a56a7426d556787fbffaf0d29d15 100644 (file)
@@ -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
index f4502e5048e648980d723d084be5bce23451db84..9d173359a21890da14fc75ee936f64a7339a056c 100644 (file)
@@ -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
index 964d3e66d6b2718cf841412dc187703c8d8abd56..1def285e871a41f4873bd734d3f24f9eb0217652 100644 (file)
@@ -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 <map>:<symbol>')
+        rspamd_logger.infox(rspamd_config, mapname .. ' option must be in format <map>:<symbol>')
       end
     end
   end
index 1c1dc4dd64a6845f02f81d43ed1e8729bc890a00..a6be7b9536ef7d08bd70c4613cbc3c8bc5832991 100644 (file)
@@ -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)
index 45782ba19dbc04675a9d0a4d2e330919bd24dd20..6f6c17c7be4034666f1ddd2fe8a12eeb783eabb9 100644 (file)
@@ -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
index dbf95d074ef5de89e32bf2e00d6c3cb07f47d781..951893acfbd937d002d17c99943d8ffd8b0b49c6 100644 (file)
@@ -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)
index 21264551360e93172937551c66e9f78f87b5f292..175b6f6e83bef3e3cea5f659c04f22fa2da18d0f 100644 (file)
@@ -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'])
index d41d12b5ddf64e26974e0e48ac7d56d7cac0c92a..fa5e615086047c614b9163af8c4d52e02f993386 100644 (file)
@@ -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