PluginProbe ʕ •ᴥ•ʔ
WP STAGING – WordPress Backup, Restore, Migration & Clone / 4.5.0
WP STAGING – WordPress Backup, Restore, Migration & Clone v4.5.0
4.9.1 4.9.0 4.8.1 trunk 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.10.0 3.2.0 3.3.1 3.3.2 3.3.3 3.4.1 3.4.3 3.5.0 3.6.0 3.7.1 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.8.6 3.8.7 3.9.0 3.9.1 3.9.2 3.9.3 3.9.4 4.0.0 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.0 4.7.0 4.7.1 4.7.2 4.7.3 4.8.0
wp-staging / Framework / Filesystem / LogCleanup.php
wp-staging / Framework / Filesystem Last commit date
Filters 6 months ago Scanning 5 years ago AbstractFileObject.php 1 year ago AbstractFilesystemScanner.php 1 year ago DebugLogReader.php 2 years ago DirectoryListing.php 5 months ago DiskWriteCheck.php 5 months ago FileObject.php 1 year ago Filesystem.php 6 months ago FilesystemExceptions.php 5 years ago FilesystemScanner.php 6 months ago FilesystemScannerDto.php 1 year ago FilterableDirectoryIterator.php 1 year ago LogCleanup.php 5 months ago LogFiles.php 1 year ago MissingFileException.php 3 years ago OPcache.php 5 months ago PartIdentifier.php 8 months ago PathChecker.php 2 years ago PathIdentifier.php 6 months ago Permissions.php 5 months ago WpUploadsFolderSymlinker.php 4 years ago
LogCleanup.php
54 lines
1 <?php
2
3 namespace WPStaging\Framework\Filesystem;
4
5 use WPStaging\Core\Utils\Logger;
6 use WPStaging\Framework\Facades\Hooks;
7
8 class LogCleanup
9 {
10 /** @var string */
11 const FILTER_LOGS_DELETE_OLDER_THAN_DAYS = 'wpstg.logs.deleteOlderThanDays';
12
13 /** @var string */
14 const FILTER_LOGS_DELETE_BIGGER_THAN_BYTES = 'wpstg.logs.deleteBiggerThanBytes';
15
16 protected $logger;
17
18 public function __construct(Logger $logger)
19 {
20 $this->logger = $logger;
21 }
22
23 public function cleanOldLogs()
24 {
25 try {
26 $it = new \DirectoryIterator($this->logger->getLogDir());
27 } catch (\Exception $e) {
28 // Early bail: Couldn't open directory.
29 return;
30 }
31
32 // Delete logs older than 14 days by default
33 $deleteOlderThanDays = absint(Hooks::applyFilters(self::FILTER_LOGS_DELETE_OLDER_THAN_DAYS, 14));
34
35 // Delete logs bigger than 5mb by default
36 $deleteBiggerThan = absint(Hooks::applyFilters(self::FILTER_LOGS_DELETE_BIGGER_THAN_BYTES, 5 * MB_IN_BYTES));
37
38 /** @var \SplFileInfo $splFileInfo */
39 foreach ($it as $splFileInfo) {
40 if ($splFileInfo->isFile() && !$splFileInfo->isLink() && $splFileInfo->getExtension() === 'log') {
41 if ($splFileInfo->getSize() > $deleteBiggerThan) {
42 unlink($splFileInfo->getPathname());
43 continue;
44 }
45
46 if ($splFileInfo->getMTime() < strtotime("-$deleteOlderThanDays days")) {
47 // Not silenced nor logged
48 unlink($splFileInfo->getPathname());
49 }
50 }
51 }
52 }
53 }
54