The various SpamAssassin scripts have a debug option (-D) which can optionally take a list of channels which will restrict what information is displayed. People have asked which channels are available. However, the channels are dynamic based on the code that is running. When looking at the debug output, the first word (pre-colon) is the logging level (dbg, info, warn, error,) and the second word (pre-colon) is the channel. ie:

[20784] dbg: message: main message type: text/plain
[20784] dbg: bayes: DB journal sync: last sync: 1148309062
[20784] dbg: check: is spam? score=-0.156 required=5
[20784] dbg: check: tests=BAYES_00,MISSING_SUBJECT,NO_RECEIVED,NO_RELAYS,TO_CC_NONE

has the channels message, bayes, and check. While the channels are dynamic in nature, below are the standard ones that are in use as of v3.1.2 (this is not a complete list).

Note: debug mode will show a certain amount of information, while some channels will give more details if the channel is used specifically. ie: "-D" vs "-D bayes".


spamassassin and spamd channels

accessdb

all

 The default if _-D_ is specified without any parameters.  Can be useful in combination with other channels to get more output, such as _-D all,bayes_.
 

archive-iterator

auto-whitelist

bayes

 Information related to the Bayesian classifier, including DB access, expiry, etc.  When specifically added, will also output information about individual tokens and their Bayes score.
 

check

 Information related to the [PerMsgStatus]::check() function, which generally includes which rule priorities are being run, the ham/spam decision, message score, and list of (sub)rules that matched.
 

config

 Configuration files and related.

 

dcc

diag

dk

dkim

dns

eval

generic

hashcash

ident

ignore

info

ldap

learn

locker

log

logger

markup

message

 Debug information from the message/MIME parser.

 

metadata

netcache

plugin

prefork

pyzor

razor2

received-header

replacetags

reporter

rules

 Merges of duplicate rules, progress of rule processing, rule hits.

 

rules-all

 Rule names before execution (regardless of hits). Very useful for locating a runaway rule that is causing SA to hang.

 

spamd

spf

textcat

uri

uridnsbl

util

generated via:

$ egrep -hr '(info|dbg)\(' spamassassin.raw spamd lib | perl -nle 'next unless /^\s*(?:info|dbg)\(.([^:]+):/; print $1' | sort -u

sa-update channels

channel

diag

dns

generic

gpg

http

sha1

generated via:

egrep -hr '(info|dbg)\(' sa-update.raw | perl -nle 'next unless /^\s*(?:info|dbg)\(.([^:]+):/; print $1' | sort -u