Hello,

I'm currently looking into possibilities to improve regular logging
output for DSPAM. Currently, DSPAM does not log anything when running
normally. There is no easy way to see regular activity within a DSPAM
process. There are ways around this such as enabling TrackSources which
logs 1 line for each processed message (under most circumstances), but
this is far from ideal.

The idea is to make DSPAM output some informal logging about its own
activity. To do this, my general idea is like this:

- Add LOG(LOG_INFO, "informal message") to applicable places in the code

- Add the actual strings to language.h in the same way current logging
(90% errors) is done.

- Convert some of the existing debug messages to LOG(LOG_DEBUG...
statements and enable them even when --debug is disabled

- Add a directive to dspam.conf that enables the user to change
verbosity: LogLevel {debug,info,notice,warn,critical,alert,emerg} and
log all messages above and including this level to the regular logging
channel (syslog or ./configure --with-logfile=<path>)


The general logging output should pass the following requirements:

- Each (interesting) event should ad one (and only one) line to the log

- A log entry should be short but informative, and contain as much
relevant information as possible.

- LogLevel set to "info" should result in output that enables an
administrator (i.e. no developer) to see high level message handling on
a per-message basis.

- LogLevel set above "info" should only output issues, as is currently
done (albeit because no messages of level "info" or "lower" are
available in the code).

- LogLevel set to "debug" should add output that helps administrators to
find configuration issues.

- Output that is only helpful for developers or significantly impacts
performance (because extra calculations/queries/etc are needed) should
be logged only when
--enable-debug/--enable-bnr-debug/--enable-verbose-debug options are
enabled at compile time. This is currently already being done.

Other things to consider:

We could write all the debug output to the regular logging channel,
thereby eliminating the current (IMHO annoying) practice of logging to
different files.

Current error messages can be enhanced when possible. Depends on the
case, but adding debug/warning messages deeper inside the code should
reveal more information when someone is interested.

If needed we could add some unique identifier for each message passing
though DSPAM, so log lines for each messages can be grouped together
easily (MTA queue id alike).

Example
-------
We are running dspam as daemon and a message is processed. Loglevel is
set to "info". This means that a line is logged for each of the events:

- external entity connects to dspam via LMTP or dspamc
- dspam classifies message, and decides what the result is
- dspam handles message according to result (quarantine/send over smtp/etc/)

Thus, normal execution of a message results in 3 log lines. This seems
reasonable to be, since other applications (f.i. postfix) are able to
produce much more logging without harming performance.

As I'm sure I'm not the only person that is annoyed by the lack of
regular processing output in DSPAM, I'd like to hear your ideas and
comments on the above.

--
Tom

------------------------------------------------------------------------------
EMC VNX: the world's simplest storage, starting under $10K
The only unified storage solution that offers unified management 
Up to 160% more powerful than alternatives and 25% more efficient. 
Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev
_______________________________________________
Dspam-devel mailing list
Dspam-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dspam-devel

Reply via email to