Skip to content

889116 - Make log optional + zip log file when size exceed retention_size#5

Open
pngouahbeapi wants to merge 2 commits into
masterfrom
issue/88916
Open

889116 - Make log optional + zip log file when size exceed retention_size#5
pngouahbeapi wants to merge 2 commits into
masterfrom
issue/88916

Conversation

@pngouahbeapi
Copy link
Copy Markdown

@pngouahbeapi pngouahbeapi commented May 13, 2026

Note

Medium Risk
Adds new behavior to log rotation (optional ZIP compression and file deletion) and changes construction via a new $write_enabled flag, which could affect logging/rotation expectations and filesystem permissions.

Overview
Adds a new $write_enabled constructor flag to Bea_Log to make log_this() a no-op when logging is disabled (no disk I/O).

Enhances log rotation so that when a log exceeds retention_size it is renamed and, if ZipArchive is available, the rotated file is compressed into a sibling .zip and the uncompressed rotated log is removed.

Updates docs and bumps plugin version to 0.4 to reflect the new constructor signature, defaults, and rotation/compression behavior.

Reviewed by Cursor Bugbot for commit 90a941d. Bugbot is set up for automated code reviews on this repo. Configure here.

Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 635db99. Configure here.

Comment thread bea-logger.php
Comment thread bea-logger.php

// Rename the file, then compress the rotated log when possible.
if ( rename( $file_path, $rotated_path ) ) {
$this->maybe_zip_rotated_file( $rotated_path );
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Synchronous compression blocks logging call for seconds

Medium Severity

maybe_zip_rotated_file runs synchronously inside log_this(), meaning a single logging call can block a PHP web request for seconds (or longer) while compressing a file up to the default ~400 MB $retention_size. Previously, maybe_move_file only performed a near-instant rename. This makes call duration unpredictable and can trigger web-server or PHP request timeouts for the unlucky request that hits the rotation threshold.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 635db99. Configure here.

@francoistibo francoistibo requested a review from Rahe May 13, 2026 10:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant