8
8
use Monolog \Logger ;
9
9
use Symfony \Component \HttpKernel \Exception \HttpException ;
10
10
use JsonException ;
11
+ use YaPro \MonologExt \VarHelper ;
11
12
use function is_numeric ;
12
13
13
14
// todo покрыть методы тестами
@@ -21,6 +22,7 @@ class JsonToStdErrHandler extends AbstractProcessingHandler
21
22
* @var false|resource
22
23
*/
23
24
private $ stderr ;
25
+ private VarHelper $ varHelper ;
24
26
25
27
// используется для игнорирования повтороного сообщения (такое бывает, когда приложение завершается с ошибкой, при
26
28
// этом set_exception_handler пишет ошибку, а потом register_shutdown_function пишет ее же (еще раз)
@@ -29,6 +31,7 @@ class JsonToStdErrHandler extends AbstractProcessingHandler
29
31
public function __construct () {
30
32
parent ::__construct ();
31
33
$ this ->stderr = fopen ('php://stderr ' , 'w ' );
34
+ $ this ->varHelper = new VarHelper ();
32
35
}
33
36
34
37
// Не реализуем метод isHandling т.к. он уже реализован \Monolog\Handler\AbstractHandler::isHandling(), а главное
@@ -134,7 +137,7 @@ public function getReducedRecord(array &$record, $keyName): string
134
137
$ excessCharactersInTheRecord = mb_strlen ($ result ) - self ::MAX_RECORD_LENGTH ;
135
138
if ($ excessCharactersInTheRecord > 0 ) {
136
139
// находим насколько мы должны подрезать value:
137
- $ valueAsString = is_string ( $ value ) ? $ value : $ this ->getJson ($ value );
140
+ $ valueAsString = $ this ->varHelper -> dump ($ value );
138
141
$ newValueMaxLength = mb_strlen ($ valueAsString ) - $ excessCharactersInTheRecord - $ explanationLength ;
139
142
if ($ newValueMaxLength > 0 ) {// даем пояснение + подрезаем value:
140
143
$ record [$ keyName ][$ key ] = $ explanation . mb_substr ($ valueAsString , 0 , $ newValueMaxLength );
0 commit comments