PluginProbe ʕ •ᴥ•ʔ
WP STAGING – WordPress Backups, Restore, Migration & Clone / 4.10.0
WP STAGING – WordPress Backups, Restore, Migration & Clone v4.10.0
4.10.0 4.9.5 4.9.4 4.9.3 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 2 weeks ago Scanning 5 years ago AbstractFileObject.php 4 days ago AbstractFilesystemScanner.php 2 weeks ago DebugLogReader.php 4 days ago DirectoryListing.php 4 days ago DirectorySize.php 4 weeks ago DiskWriteCheck.php 6 months ago FileObject.php 1 year ago Filesystem.php 8 months ago FilesystemExceptions.php 5 years ago FilesystemScanner.php 1 week ago FilesystemScannerDto.php 1 month ago FilterableDirectoryIterator.php 1 year ago LegacyFileRulesTrait.php 4 weeks ago LogCleanup.php 6 months ago LogFiles.php 1 year ago MissingFileException.php 3 years ago OPcache.php 6 months ago PartIdentifier.php 10 months ago PathChecker.php 2 years ago PathIdentifier.php 1 week ago Permissions.php 1 month ago WpUploadsFolderSymlinker.php 1 month 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