PluginProbe ʕ •ᴥ•ʔ
WP STAGING – WordPress Backup, Restore, Migration & Clone / 4.9.2
WP STAGING – WordPress Backup, Restore, Migration & Clone v4.9.2
4.9.2 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 7 months ago Scanning 5 years ago AbstractFileObject.php 1 year ago AbstractFilesystemScanner.php 2 months ago DebugLogReader.php 2 years ago DirectoryListing.php 5 months ago DiskWriteCheck.php 5 months ago FileObject.php 1 year ago Filesystem.php 7 months ago FilesystemExceptions.php 5 years ago FilesystemScanner.php 2 weeks ago FilesystemScannerDto.php 2 weeks ago FilterableDirectoryIterator.php 1 year ago LegacyFileRulesTrait.php 2 weeks ago LogCleanup.php 5 months ago LogFiles.php 1 year ago MissingFileException.php 3 years ago OPcache.php 5 months ago PartIdentifier.php 9 months ago PathChecker.php 2 years ago PathIdentifier.php 2 days ago Permissions.php 1 week ago WpUploadsFolderSymlinker.php 2 weeks 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