local$x are limited to 8; syslog instances don't bind to interfaces so you are stuck with them.
Personally I use syslog-ng. Why? Because syslog-ng gives you far more control over where the incoming logs go. For example you can tell syslog-ng to log to a file who's path/name is dependant on the system name, the date, and the facility. So it doesn't matter that you have six devices all hardcoded to use local3 (or whatever), syslog-ng breaks them out into individual files.
Here is an example of one of my configurations
. It is from a Sun, but with a little reading you can convert it to Linux fairly easily.
Beware the log rotation problems or you'll eat up your disk space fairly quick.
I also send everything to one massive file which is read once per day by a script which sends me either things I know to be bad, or things which the script does not know to be good.
This may not be a "best practise" but it works for me.