In general, any log file grows without bound; none of the logging mechanisms discussed have any intrinsic mechanisms for expiring old log data. There is also little utility to keeping most log data indefinitely.
Therefore, most systems have scripts to periodically "rotate" log files so that log data is kept only for so long. This usually has to be done with some care to prevent loss of log data while the log files are being shuffled around.
Most log files written to by daemons (syslogd, httpd, etc.) can be renamed while the daemon still has the log file open. Such daemons then usually accept some signal (such as SIGHUP) to tell them to reinitialize and re-open log files (but sometimes you have to create a new empty log file first).
Other log files, such as wtmp, can simply be moved aside and an empty wtmp created immediately, since such log files are not held open or written to by any one program.
Many OS distributions include log rotation jobs (typically scheduled by cron) to rotate their standard log files automatically. You may, however, need to write your own scripts or adapt existing tools to rotate log files for for other locally-installed software or to customize log retention and rotation scheduling.