logrotate(8) is a utility for maintenenace of system logs. It allows automatic rotation, compression, removal, and mailing of log files. Each log file can be handled daily, weekly, monthly, or when it grows too large.
logrotate is run by cron(8) and controlled by a config file (/etc/logrotate.conf) and files stored in /etc/logrotate.d.
This should mail the logfile out to email@example.com whenever logrotate runs - which is your systems 'midnight maintenance' is scheduled to be run (3 or 4 am usually, as most geeks dont like being interrupted at midnight for maintenance ;) To mail it to two ppl, add an alias in /etc/aliases with both email addresses included - this is probably the nicest method.
It'll keep 12 rotations, and start gzip compressing old logfiles. mailfirst tells it to mail out the most recently rotated logfile (The default is the one about to be killed.)
Oh, and this is all assuming that you are using syslog(3) to do your logging. If /var/log/logfilename is manually opened by whatever app you are using, I dont know how logrotate will handle it, if at all. you may need to use the postrotate keyword in your logrotate file to trigger a -HUP to your app, or even restart it (icky).