Compare commits

..

4 Commits
1.x ... master

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

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

@ -2,6 +2,7 @@
namespace jrosset\ExtendedMonolog; namespace jrosset\ExtendedMonolog;
use Monolog\Level;
use Psr\Log\LoggerInterface; use Psr\Log\LoggerInterface;
use Throwable; use Throwable;
@ -12,9 +13,9 @@ interface ExceptionLoggerInterface extends LoggerInterface {
/** /**
* Adds a log record about an exception * 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 Throwable $exception The exception
* @param array $context The log context * @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 DirectoryIterator;
use jrosset\LastErrorException\LastErrorException; use jrosset\LastErrorException\LastErrorException;
use Monolog\Handler\StreamHandler; use Monolog\Handler\StreamHandler;
use Monolog\Logger; use Monolog\Level;
use RuntimeException; use RuntimeException;
use Throwable; use Throwable;
@ -21,7 +21,7 @@ class LogDirectoryHandler extends StreamHandler {
* Initialization * Initialization
* *
* @param string $dirPath The log directory path * @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 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 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) * @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 ( public function __construct (
string $dirPath, string $dirPath,
$level = Logger::DEBUG, Level $level = Level::Debug,
int $historyNumberOfDays = 30, int $historyNumberOfDays = 30,
bool $bubble = true, bool $bubble = true,
?int $filePermission = null, ?int $filePermission = null,

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

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