mirror of
https://github.com/Seldaek/monolog.git
synced 2025-08-04 20:27:31 +02:00
Allow the user to define a custom mode when fopen
-ing a log file (#1913)
* Allow the user to define a custom mode when `fopen`-ing a log file * Undo unnecessary changes --------- Co-authored-by: Jordi Boggiano <j.boggiano@seld.be>
This commit is contained in:
@@ -41,6 +41,8 @@ class StreamHandler extends AbstractProcessingHandler
|
||||
protected $filePermission;
|
||||
/** @var bool */
|
||||
protected $useLocking;
|
||||
/** @var string */
|
||||
protected $fileOpenMode;
|
||||
/** @var true|null */
|
||||
private $dirCreated = null;
|
||||
|
||||
@@ -48,10 +50,11 @@ class StreamHandler extends AbstractProcessingHandler
|
||||
* @param resource|string $stream If a missing path can't be created, an UnexpectedValueException will be thrown on first write
|
||||
* @param int|null $filePermission Optional file permissions (default (0644) are only for owner read/write)
|
||||
* @param bool $useLocking Try to lock log file before doing any writes
|
||||
* @param string $fileOpenMode The fopen() mode used when opening a file, if $stream is a file path
|
||||
*
|
||||
* @throws \InvalidArgumentException If stream is not a resource or string
|
||||
*/
|
||||
public function __construct($stream, $level = Logger::DEBUG, bool $bubble = true, ?int $filePermission = null, bool $useLocking = false)
|
||||
public function __construct($stream, $level = Logger::DEBUG, bool $bubble = true, ?int $filePermission = null, bool $useLocking = false, $fileOpenMode = 'a')
|
||||
{
|
||||
parent::__construct($level, $bubble);
|
||||
|
||||
@@ -78,6 +81,7 @@ class StreamHandler extends AbstractProcessingHandler
|
||||
throw new \InvalidArgumentException('A stream must either be a resource or a string.');
|
||||
}
|
||||
|
||||
$this->fileOpenMode = $fileOpenMode;
|
||||
$this->filePermission = $filePermission;
|
||||
$this->useLocking = $useLocking;
|
||||
}
|
||||
@@ -138,7 +142,7 @@ class StreamHandler extends AbstractProcessingHandler
|
||||
return $this->customErrorHandler(...$args);
|
||||
});
|
||||
try {
|
||||
$stream = fopen($url, 'a');
|
||||
$stream = fopen($url, $this->fileOpenMode);
|
||||
if ($this->filePermission !== null) {
|
||||
@chmod($url, $this->filePermission);
|
||||
}
|
||||
|
Reference in New Issue
Block a user