diff options
Diffstat (limited to 'lib/public/Log/RotationTrait.php')
-rw-r--r-- | lib/public/Log/RotationTrait.php | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/lib/public/Log/RotationTrait.php b/lib/public/Log/RotationTrait.php new file mode 100644 index 00000000000..73b3b16b665 --- /dev/null +++ b/lib/public/Log/RotationTrait.php @@ -0,0 +1,51 @@ +<?php + +/** + * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ +namespace OCP\Log; + +/** + * Trait RotationTrait + * + * + * @since 14.0.0 + */ +trait RotationTrait { + /** + * @var string + * @since 14.0.0 + */ + protected $filePath; + + /** + * @var int + * @since 14.0.0 + */ + protected $maxSize; + + /** + * @return string the resulting new filepath + * @since 14.0.0 + */ + protected function rotate():string { + $rotatedFile = $this->filePath . '.1'; + rename($this->filePath, $rotatedFile); + return $rotatedFile; + } + + /** + * @return bool + * @since 14.0.0 + */ + protected function shouldRotateBySize():bool { + if ((int)$this->maxSize > 0 && file_exists($this->filePath)) { + $filesize = @filesize($this->filePath); + if ($filesize >= (int)$this->maxSize) { + return true; + } + } + return false; + } +} |