Skip to content

Commit c393c34

Browse files
ACPT-1034: Fixing Logging fails when log rotated in long running processes
1 parent 3a42ff7 commit c393c34

File tree

2 files changed

+19
-4
lines changed

2 files changed

+19
-4
lines changed

lib/internal/Magento/Framework/Logger/Handler/Base.php

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
use InvalidArgumentException;
1111
use Magento\Framework\Filesystem\DriverInterface;
12+
use Magento\Framework\ObjectManager\ResetAfterRequestInterface;
1213
use Monolog\Formatter\LineFormatter;
1314
use Monolog\Handler\StreamHandler;
1415
use Monolog\Logger;
@@ -18,7 +19,7 @@
1819
*
1920
* @api
2021
*/
21-
class Base extends StreamHandler
22+
class Base extends StreamHandler implements ResetAfterRequestInterface
2223
{
2324
/**
2425
* @var string
@@ -59,6 +60,14 @@ public function __construct(
5960
$this->setFormatter(new LineFormatter(null, null, true));
6061
}
6162

63+
/**
64+
* @inheritDoc
65+
*/
66+
public function _resetState(): void
67+
{
68+
$this->close();
69+
}
70+
6271
/**
6372
* Remove dots from file name
6473
*

lib/internal/Magento/Framework/Logger/LoggerProxy.php

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,21 +10,22 @@
1010
use Magento\Framework\Exception\FileSystemException;
1111
use Magento\Framework\Exception\RuntimeException;
1212
use Magento\Framework\ObjectManager\NoninterceptableInterface;
13+
use Magento\Framework\ObjectManager\ResetAfterRequestInterface;
1314
use Magento\Framework\ObjectManagerInterface;
1415
use Psr\Log\LoggerInterface;
1516

1617
/**
1718
* Create and use Logger implementation based on deployment configuration
1819
*/
19-
class LoggerProxy implements LoggerInterface, NoninterceptableInterface
20+
class LoggerProxy implements LoggerInterface, NoninterceptableInterface, ResetAfterRequestInterface
2021
{
2122
/**
2223
* @var ObjectManagerInterface
2324
*/
24-
private $objectManager;
25+
private readonly ObjectManagerInterface $objectManager;
2526

2627
/**
27-
* @var LoggerInterface
28+
* @var LoggerInterface|null
2829
*/
2930
private $logger;
3031

@@ -39,6 +40,11 @@ public function __construct(
3940
$this->objectManager = $objectManager;
4041
}
4142

43+
public function _resetState(): void
44+
{
45+
$this->logger = null;
46+
}
47+
4248
/**
4349
* Remove links to other objects.
4450
*

0 commit comments

Comments
 (0)