The stock syslog.conf on OSX contains in part:
*.notice;authpriv,remoteauth,ftp,install.none;kern.debug;mail.crit /var/log/system.log
mail.* /var/log/mail.log
I tried changing that to:
*.notice;authpriv,remoteauth,ftp,install,mail,local7.none;kern.debug /var/log/system.log
mail.* /var/log/mail.log
local7.* /var/log/spamd.log
And launching spamd with "-s local7".
The result: postfix and dovecot are logged into mail.log and not into system.log. Good. Spamd is logged into spamd.log. Good. But spamd is also logged into console.log. Bad. And I don't understand why.
Also, messages from spamd are logged slightly differently in the two files. Dunno if that's relevant, but the logs look like:
system.log:
Oct 26 19:01:55 grendel org.macports.spamd[39735]: [39736] info: prefork: child states: II
versus spamd.log:
Oct 26 19:01:55 grendel spamd[39736]: prefork: child states: II
So how do I keep spamd out of system.log?
Update: The answer is, "redirect spamd's stderr to /dev/null or launchd will log it a second time." Apparently spamd spams stderr with all its logs as well as whatever the -s option says.