PluginProbe ʕ •ᴥ•ʔ
WP STAGING – WordPress Backup, Restore, Migration & Clone / 3.8.0
WP STAGING – WordPress Backup, Restore, Migration & Clone v3.8.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 2 years ago Scanning 5 years ago DebugLogReader.php 2 years ago DirectoryListing.php 2 years ago DiskWriteCheck.php 3 years ago FileObject.php 2 years ago Filesystem.php 2 years ago FilesystemExceptions.php 5 years ago FilterableDirectoryIterator.php 2 years ago LogCleanup.php 2 years ago LogFiles.php 2 years ago MissingFileException.php 3 years ago OPcache.php 2 years ago PathChecker.php 2 years ago PathIdentifier.php 2 years ago Permissions.php 5 years ago WpUploadsFolderSymlinker.php 4 years ago
LogCleanup.php
47 lines
1 <?php
2
3 namespace WPStaging\Framework\Filesystem;
4
5 use WPStaging\Core\Utils\Logger;
6
7 class LogCleanup
8 {
9 protected $logger;
10
11 public function __construct(Logger $logger)
12 {
13 $this->logger = $logger;
14 }
15
16 public function cleanOldLogs()
17 {
18 try {
19 $it = new \DirectoryIterator($this->logger->getLogDir());
20 } catch (\Exception $e) {
21 // Early bail: Couldn't open directory.
22 return;
23 }
24
25 // Delete logs older than 14 days by default
26 $deleteOlderThanDays = absint(apply_filters('wpstg.logs.deleteOlderThanDays', 14));
27
28 // Delete logs bigger than 5mb by default
29 $deleteBiggerThan = absint(apply_filters('wpstg.logs.deleteBiggerThanBytes', 5 * MB_IN_BYTES));
30
31 /** @var \SplFileInfo $splFileInfo */
32 foreach ($it as $splFileInfo) {
33 if ($splFileInfo->isFile() && !$splFileInfo->isLink() && $splFileInfo->getExtension() === 'log') {
34 if ($splFileInfo->getSize() > $deleteBiggerThan) {
35 unlink($splFileInfo->getPathname());
36 continue;
37 }
38
39 if ($splFileInfo->getMTime() < strtotime("-$deleteOlderThanDays days")) {
40 // Not silenced nor logged
41 unlink($splFileInfo->getPathname());
42 }
43 }
44 }
45 }
46 }
47