Logrotate basically renames the files. What is happening is that logrotate is changing the name of the file, but the actual file indentifier, the inode, is staying the same. Syslog has opened the file based on the inode (that's all abstracted by the operating system) and after logrotate runs, it still has the file formerly know as cdrlog, now cdrlog1 open for writing.
In a nutshell, logrorate isn't stopping and restarting syslogd. You need to send the HUP signal to syslogd when logrotate runs. You need to make sure that you have a postrorate declaration like this:
postrotate
/usr/bin/killall -HUP httpd
endscript
Hope that helps! Let us know if that works or if you need additional help.