This documentation is for Dovecot v1.x, see wiki2 for v2.x documentation.
Differences between revisions 9 and 10
Revision 9 as of 2007-05-11 23:43:01
Size: 2966
Editor: c-69-252-197-202
Comment: I think you mean info_log rather than log_info
Revision 10 as of 2007-06-12 12:26:07
Size: 3304
Editor: TimoSirainen
Comment:
Deletions are marked like this. Additions are marked like this.
Line 4: Line 4:
By default Dovecot starts logging to syslog using mail facility. In most operating systems this goes to{{{/var/log/mail.log}}}, {{{/var/log/maillog}}} or something similar. If there is anything wrong with your configuration or if something crashes, '''Dovecot will always log the error message'''. It's extremely rare that Dovecot dies without giving any sort of error message, so make sure you're looking at the correct log file.
Line 6: Line 5:
NOTE: Error messages may be logged into a different log file than the informational log lines! Some syslogs are by default configured to log mail error messages into a different log file. '''Dovecot always logs a detailed error message''' if something goes wrong. If it doesn't, it's considered a bug and will be fixed. However almost always the problem is that you're looking at the wrong log file. Dovecot uses two different logs:
Line 8: Line 7:
After you start Dovecot, make sure that you can find a line similar to this:  * Info log: All informational and debug messages are logged here. It may also contain some vague error messages, which are also logged in more detail in the error log.
 * Error log: All errors are logged here. As long as there are no errors, nothing is ever written here.
Line 10: Line 10:
{{{
dovecot: Jan 07 14:22:40 Info: Dovecot v1.0.rc19 starting up
}}}
However, the above message is logged into informational log, which may or may not be where the error messages are logged.
By default Dovecot logs to syslog using mail facility. In many systems the info and error messages go to different log files. For example:
Line 15: Line 12:
In 1.0.rc20 and later, you can use {{{dovecot --log-error}}} command line option to find the error log. It will log a line:  * Info log: {{{/var/log/mail.log}}} or {{{/var/log/maillog}}}
 * Error log: {{{/var/log/mail.err}}}
Line 17: Line 15:
{{{
dovecot: Jan 27 03:44:21 Fatal: This is Dovecot's error log
}}}
You can find the correct log files using these methods:

 * Info log: After starting Dovecot, {{{grep 'starting up' /var/log/*}}}. It should show a line such as: {{{Dovecot v1.0.0 starting up}}}
 * Error log: Use {{{dovecot --log-error}}} command. Then {{{grep "This is Dovecot's error log" /var/log/*}}} to find it.
 * Or just check your {{{/etc/syslog.conf}}} to see how it's configured.

Dovecot actually also logs warnings sometimes. They usually go to the error log, but depending on syslog configuration they may go to their own log file as well. It's probably a good idea to make warnings go to the error log so you don't forget to look at them.
Line 41: Line 44:
If you change from syslog to an external log file, you can use logrotate (available on most recent linux distros) to maintain the Dovecot logfile so it doesn't grow beyond a manageable size. Save the below scriptlet as ''/etc/logrotate.d/dovecot'': If you change from syslog to an external log file, you can use logrotate (available on most recent linux distros) to maintain the Dovecot logfile so it doesn't grow beyond a manageable size. Save the below scriptlet as {{{/etc/logrotate.d/dovecot}}}:

TableOfContents

Dovecot Logging

Dovecot always logs a detailed error message if something goes wrong. If it doesn't, it's considered a bug and will be fixed. However almost always the problem is that you're looking at the wrong log file. Dovecot uses two different logs:

  • Info log: All informational and debug messages are logged here. It may also contain some vague error messages, which are also logged in more detail in the error log.
  • Error log: All errors are logged here. As long as there are no errors, nothing is ever written here.

By default Dovecot logs to syslog using mail facility. In many systems the info and error messages go to different log files. For example:

  • Info log: /var/log/mail.log or /var/log/maillog

  • Error log: /var/log/mail.err

You can find the correct log files using these methods:

  • Info log: After starting Dovecot, grep 'starting up' /var/log/*. It should show a line such as: Dovecot v1.0.0 starting up

  • Error log: Use dovecot --log-error command. Then grep "This is Dovecot's error log" /var/log/* to find it.

  • Or just check your /etc/syslog.conf to see how it's configured.

Dovecot actually also logs warnings sometimes. They usually go to the error log, but depending on syslog configuration they may go to their own log file as well. It's probably a good idea to make warnings go to the error log so you don't forget to look at them.

Internal Errors

If IMAP or POP3 processes encounter some error, they don't show the exact reason for clients. Instead they show:

Internal error occurred. Refer to server log for more information. [2006-01-07 22:35:11]

The point is that whenever anything unexpected happens, Dovecot doesn't leak any extra information about it to clients. They don't need it and they might try to exploit it in some ways, so the less they know the better.

The real error message is written to the error log file. The timestamp is meant to help you find it.

Changing Log File Paths

If you don't want to use syslog, or if you just can't find the Dovecot's error logs, you can make Dovecot log elsewhere as well:

log_path = /var/log/dovecot.log
# If you want everything in one file, just don't specify info_log_path
info_log_path = /var/log/dovecot-info.log

The error messages will go to file specified by log_path, while everything else goes to info_log_path. If you do this, make sure you're really looking at the log_path file for error messages, since the "Starting up" message is written to info_log_path file.

Rotating Logs

If you change from syslog to an external log file, you can use logrotate (available on most recent linux distros) to maintain the Dovecot logfile so it doesn't grow beyond a manageable size. Save the below scriptlet as /etc/logrotate.d/dovecot:

# dovecot SIGUSR1: Re-opens the log files.
/var/log/dovecot*.log {
  missingok
  notifempty
  delaycompress
  sharedscripts
  postrotate
    /bin/kill -USR1 `cat /var/run/dovecot/master.pid 2>/dev/null` 2> /dev/null || true
  endscript
}

NOTE: change the path to the logfile(s) and the master.pid file as appropriate for your system configuration.

None: Logging (last edited 2009-10-28 03:05:44 by TimoSirainen)