cpanellogd handles log processing and license updating (the main loop runs stats every other time it loops, and updates the license file every 25 loops)
Every time through the main loop, it checks if the following files are over 5MB and rotates them:
/usr/local/apache/logs/suexec_log,
/usr/local/apache/access_log,
/usr/local/apache/logs/error_log,
/etc/httpd/logs/error_log
If the logs are over 5MB and rotated - it restarts Apache with a SIGUSR1
During the logrun loops, it first does something with FTP & transfer logs (haven't looked too deeply into this), then goes through /var/cpanel/users and runs logs and updates bandwidth usage for every user, catching subdomains and the like as each user is ran.
After each loop through main, the daemon sleeps for 5 minutes.
That's pretty much it for the daemon part of cpanellogd.
It can also be called on a per-user basis - simply run /usr/local/cpanel/cpanellogd <username> to have it just run the logs for a specific user and exit.
::edit:: Slight correction
In case you were wondering, cpanellogd doesn't actually get to run stats. it just collects information needed to run stats on all domains, and passes it to /usr/local/cpanel/bin/logrunner - which is an executable file, not a perl file, so I can't tell you what goes on in there. I'd imagine it just checks if stats have been run on the domains it is passed in the last 24 hours, and if not, spawns a child to run stats for that domain.
All the load-checking and etc. have moved out of cpanellogd - I have to assume that it's in logrunner now.
::/edit::