php - validar - Registro de Laravel: corchetes adicionales al final de las líneas de registro?
validar si un registro existe en la base de datos laravel (2)
Soy nuevo en Laravel, y me he dado cuenta cuando uso su registro basado en Monolog, por ejemplo, Log::info(''blah blah'')
, las líneas que escribe en mi archivo de registro tienen el sufijo con dos conjuntos vacíos de corchetes. ¿Para qué son y cómo puedo desactivarlos? No son útiles en lo más mínimo. Intenté profundizar en el código fuente y buscar en Google un poco, pero no veo ninguna explicación.
Ejemplo:
[2013-11-12 09:13:16] log.INFO: Hello world [] []
[2013-11-12 09:13:31] log.INFO: Mi tonto mensaje de registro [] []
¡Gracias!
Aquí hay una solución que combina la respuesta de curtisdf con esta respuesta de Seldaek , y no requiere la subclasificación de LineFormatter
de Monolog.
Asumiendo que su archivo app/start/global.php
contiene:
Log::useFiles(storage_path() . ''/logs/laravel.log'');
Reemplace eso con:
use Monolog/Handler/StreamHandler;
use Monolog/Logger as MonologLogger;
use Monolog/Formatter/LineFormatter;
// Use custom LineFormatter, with ignoreEmptyContextAndExtra enabled
Log::getMonolog()->pushHandler(
(new StreamHandler(
storage_path() . ''/logs/laravel.log'',
MonologLogger::DEBUG
))->setFormatter(new LineFormatter(null, null, true, true))
);
Después de más investigaciones, veo que esto sucede en Monolog/Formatter/LineFormatter
. En resumen, los corchetes son una representación JSON de una matriz vacía. Desafortunadamente, no parece que Laravel ofrezca una forma fácil de salir de este, así que terminé subclasificando a Monolog. Publiqué los detalles en esta publicación SO . Pero dado que esa publicación no es específica de Laravel, pensé que compartiría cómo usar un LineFormatter
personalizado en un contexto de Laravel.
En su app/start/global.php
, por defecto hay una sección que define el registro. Se parece a esto:
Log::useDailyFiles(storage_path().''/logs/log-''.php_sapi_name().''.txt'');
Reemplázalo con esto:
$handler = new Monolog/Handler/StreamHandler(
storage_path().''/logs/log-''.php_sapi_name().''.txt'');
$handler->setFormatter(new My/Fancy/Monolog/LineFormatter());
Log::getMonolog()->pushHandler($handler);
¡Disfrutar!