TL;DR

To investigate a batch indexing issue:

  • Edit ~/.recoll/recoll.conf or C:/Users/[me]/AppData/Local/Recoll/recoll.conf on Windows (or recoll.conf in the relevant configuration directory).

  • Set:

idxloglevel = 4
idxlogfilename = stderr
  • Run the command as:

recollindex > /tmp/myindexlog.txt 2>&1

To investigate a real time indexer issue, it’s best to add the -D option to the real time options to prevent the process from detaching from the terminal:

recollindex -c ~/.recoll -mw 0 -D > /tmp/myindexlog.txt 2>&1

Details: common log

Recoll can print a varying information about what it is doing to log files, and these are the primary source of information when investigating a problem.

By default all Recoll commands (GUI, indexer, Python extension) use the same log file, which is reset every time a command is started: so it is important to make a copy right after the problem occurs (for example, do not start recoll after a recollindex crash, this would reset the log). It is also possible to set program-specific log parameters, see the next section.

The common log file can be configured from the GUI Preferences→Index Configuration→Global parameters pane, by setting the Log file name and Log verbosity level values.

You can also directly edit $HOME/.recoll/recoll.conf (or C:/Users/[me]/AppData/Local/Recoll/recoll.conf on Windows)

Setting the name as stderr will cause messages to go to the terminal which started the command.

Useful verbosity levels go in increasing verbosity from 2 to 5. 2 will only print errors, 3 gives information like what files are added or updated, 4 is for normal problem solving and 5 can be extremely verbose.

The default setup is the following:

loglevel = 2
logfilename = stderr

This will only log errors, and print them to the terminal. For a Recoll GUI launched from some Linux desktops, the messages may go to ~/.xsession-errors.

If set to use an actual file, the log can become very big if you need a big indexing run to reproduce the problem. Choose a file system with enough space available (possibly a few gigabytes).

Details: log parameters for specific programs

There are other pairs of parameters which can set up the log differently for specific Recoll programs. They are used if set, else the programs fall back to the default logfilename and loglevel:

  • idxlogfilename and idxloglevel will be used by the recollindex program in batch mode.

  • daemlogfilename and daemloglevel will be used by the real time indexer (recollindex in daemon mode). It falls back to idxlog…​, and then the common log.

  • pylogfilename and pyloglevel for the Recoll Python extension called from a Python script.