Compare commits

..

4 Commits
1.x ... master

@ -9,17 +9,17 @@
},
"extra": {
"branch-alias": {
"dev-master": "1.x-dev"
"dev-master": "2.x-dev"
}
},
"minimum-stability": "stable",
"require": {
"php": "^7.4 || ^8.0",
"php": "^8.1",
"ext-mbstring": "*",
"jrosset/exceptionhelper": "^1.1",
"jrosset/lasterrorexception": "^1.1",
"monolog/monolog": "^2.10"
"monolog/monolog": "^3.8"
},
"autoload": {
"psr-4": {

@ -4,6 +4,7 @@
namespace jrosset\ExtendedMonolog;
use jrosset\ExceptionHelper\ExceptionHelper;
use Monolog\Level;
use Monolog\Logger;
use Throwable;
@ -14,7 +15,7 @@ class ExceptionLogger extends Logger implements ExceptionLoggerInterface {
/**
* @inheritDoc
*/
public function exception (int $level, Throwable $exception, array $context = []): void {
public function exception (Level|int $level, Throwable $exception, array $context = []): void {
$this->addRecord(
$level,
ExceptionHelper::toString($exception, false) . PHP_EOL,

@ -2,6 +2,7 @@
namespace jrosset\ExtendedMonolog;
use Monolog\Level;
use Psr\Log\LoggerInterface;
use Throwable;
@ -12,9 +13,9 @@ interface ExceptionLoggerInterface extends LoggerInterface {
/**
* Adds a log record about an exception
*
* @param int $level The logging level (a Monolog or RFC 5424 level)
* @param Level|int $level The logging level (a Monolog or RFC 5424 level)
* @param Throwable $exception The exception
* @param array $context The log context
*/
public function exception (int $level, Throwable $exception, array $context = []): void;
public function exception (Level|int $level, Throwable $exception, array $context = []): void;
}

@ -7,7 +7,7 @@ use DateTimeImmutable;
use DirectoryIterator;
use jrosset\LastErrorException\LastErrorException;
use Monolog\Handler\StreamHandler;
use Monolog\Logger;
use Monolog\Level;
use RuntimeException;
use Throwable;
@ -21,7 +21,7 @@ class LogDirectoryHandler extends StreamHandler {
* Initialization
*
* @param string $dirPath The log directory path
* @param int|string $level The minimum logging level at which this handler will be triggered
* @param Level $level The minimum logging level at which this handler will be triggered
* @param int $historyNumberOfDays The maximum number of history files to keep (in number of days)
* @param bool $bubble Whether the messages that are handled can bubble up the stack or not
* @param int|null $filePermission Optional file permissions (default (0644) are only for owner read/write)
@ -32,7 +32,7 @@ class LogDirectoryHandler extends StreamHandler {
*/
public function __construct (
string $dirPath,
$level = Logger::DEBUG,
Level $level = Level::Debug,
int $historyNumberOfDays = 30,
bool $bubble = true,
?int $filePermission = null,

@ -3,6 +3,7 @@
namespace jrosset\ExtendedMonolog;
use Monolog\Formatter\LineFormatter;
use Monolog\LogRecord;
/**
* A formater for log files
@ -24,16 +25,18 @@ class LogFileFormatter extends LineFormatter {
/**
* @inheritDoc
*/
public function format (array $record): string {
public function format (LogRecord $record): string {
//region Get then remove newlines at record message end (*before* the formatting)
$messageEndNewlines = '';
$record['message'] = preg_replace_callback(
$record = $record->with(
message: preg_replace_callback(
'/(?:(?<!\\\\)(?:\\\\[rn]|\\r|\\n))+$/',
function (array $match) use (&$messageEndNewlines): string {
$messageEndNewlines = $match[0];
return '';
},
$this->normalize($record['message'])
$this->normalize($record->message)
)
);
//endregion
//region Format the record

@ -6,7 +6,7 @@ use jrosset\ExtendedMonolog\ExceptionLogger;
use jrosset\ExtendedMonolog\LogDirectoryHandler;
use Monolog\Formatter\LineFormatter;
use Monolog\Handler\StreamHandler;
use Monolog\Logger;
use Monolog\Level;
/** @noinspection PhpUnhandledExceptionInspection */
$logger = new ExceptionLogger(
@ -33,5 +33,5 @@ try {
$logger->info('END' . PHP_EOL);
}
catch (Throwable $exception) {
$logger->exception(Logger::ERROR, $exception);
$logger->exception(Level::Error, $exception);
}
Loading…
Cancel
Save