rc.local is there only for backward compatibility with the old (SysV style) init process. think that the file was first used by the BSD style init process. Anyway, Ubuntu uses Upstart now, so I'd probably write an Upstart job to run the script.
Redirecting the stdout and stderr of the script is relatively simple. I'd use two log files, one for stdout and one for stderr:
but you can redirect both of them to the same file:
/path/to/script >> /path/to/stdout.log 2>> /path/to/stderr.log
Since your script will run `forever' the log file(s) eventually will become too big. You could use logrotate to backup, rotate, remove them...
/path/to/script >> /path/to/log 2>&1