/ src / cron / daily-log-rotation.js
daily-log-rotation.js
 1  /**
 2   * Daily log rotation cron job
 3   * Rotates logs, keeping only the last 7 days
 4   *
 5   * Add to crontab:
 6   * 0 2 * * * cd /path/to/project && node src/cron/daily-log-rotation.js
 7   * (Runs daily at 2 AM)
 8   */
 9  
10  import { rotateLogs } from '../utils/log-rotator.js';
11  import Logger from '../utils/logger.js';
12  
13  const logger = new Logger('daily-log-rotation');
14  
15  logger.info('Starting daily log rotation');
16  
17  try {
18    const result = rotateLogs({
19      logDir: './logs',
20      retentionDays: 7,
21      dryRun: false,
22    });
23  
24    logger.success('Log rotation completed', {
25      deleted: result.deleted,
26      kept: result.kept,
27      freedSpaceMB: (result.freedSpace / (1024 * 1024)).toFixed(2),
28    });
29  
30    process.exit(0);
31  } catch (err) {
32    logger.error('Log rotation failed', err);
33    process.exit(1);
34  }