debugging - write - view log laravel
Cómo mostrar errores en laravel 4? (10)
Intento crear una aplicación en Laravel 4 beta pero no puedo depurarla porque no muestra ningún error, display_errors
está error_reporting
, error_reporting
es E_ALL
y debug => true
( config/app.php
). Cuando trato de hacer un error en public/index.php
, muestra un error de análisis, pero cuando lo hago en el enrutador solo muestra una página en blanco (pantalla blanca de la muerte). ¿Cómo puedo arreglar esto?
Gracias
Además de la respuesta de @ cw24 • a partir de Laravel 5.4
su lugar tendrías la siguiente modificación en public/index.php
try {
$response = $kernel->handle(
$request = Illuminate/Http/Request::capture()
);
} catch(/Exception $e) {
echo "<pre>";
echo $e;
echo "</pre>";
}
Y en mi caso, había olvidado iniciar MySQL.
Que, dicho sea de paso, generalmente es mysql.server start
en Terminal
Dentro de la carpeta de configuración, abra app.php
Cambio
''debug'' => false,
a
''debug'' => true,
En la carpeta raíz de Laravel, modifique el directorio de almacenamiento a 777
Ir a la aplicación / config / app.php
y establecer ''debug'' => true,
Siguiendo el buen consejo de @The Shift Exchange, miré el error_log y logré resolver el problema. era simplemente un problema de permisos:
Tue Feb 26 11:22:20 2013] [error] [client 127.0.0.1] PHP Fatal error: Uncaught exception ''UnexpectedValueException'' with message ''The stream or file "/Users/matanya/Sites/indgo/app/start/../storage/logs/log-apache2handler-2013-02-26.txt" could not be opened: failed to open stream: Permission denied'' in /Users/matanya/Sites/indgo/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:71/nStack trace:/n#0 /Users/matanya/Sites/indgo/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php(77): Monolog//Handler//StreamHandler->write(Array)/n#1 /Users/matanya/Sites/indgo/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php(37): Monolog//Handler//RotatingFileHandler->write(Array)/n#2 /Users/matanya/Sites/indgo/vendor/monolog/monolog/src/Monolog/Logger.php(217): Monolog//Handler//AbstractProcessingHandler->handle(Array)/n#3 /Users/matanya/Sites/indgo/vendor/monolog/monolog/src/Monolog/Logger.php(281): Monolog//Logger->addRecord(400, Object(ErrorException), Array)/n#4 [internal function]: Monolog//Logger->addError(Object(ErrorException))/n#5 /Users/matanya/Sites/in in /Users/matanya/Sites/indgo/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php on line 71
Una vez que utilicé chmod
para aplicar permisos menos estrictos, todo volvió a la normalidad.
Sin embargo, no estoy seguro de que responda la pregunta del OP, ya que recibía una pantalla en blanco en lugar de un error del servidor.
Simplemente vaya a su app/storage/logs
allí registros de error
disponibles. Vaya al nombre del archivo de la hora de hoy y encontrará el último error
en su aplicación.
O
Abra app/config/app.php
y cambie la configuración
''debug'' => false,
A
''debug'' => true,
O
Vaya al archivo .env
a su aplicación y cambie la configuración
APP_LOG_LEVEL=debug
Tal vez no en Laravel 4 esta vez, pero en L5.2 * tuve un problema similar:
Simplemente cambié la propiedad del directorio storage/logs
a www-data
con:
# chown -R www-data:www-data logs
PD: esto está en Ubuntu 15 y con apache.
Mi directorio de logs
ahora se ve así:
drwxrwxr-x 2 www-data www-data 4096 jaan 23 09:39 logs/
Tuve un problema con la pantalla en blanco después de instalar una nueva instancia de laravel. No pude encontrar nada en los registros porque (eventualmente descubrí) que el motivo de la pantalla en blanco era que la aplicación / almacenamiento no se podía escribir.
Para obtener un mensaje de error en la pantalla agregué lo siguiente al público / index.php
try {
$app->run();
} catch(/Exception $e) {
echo "<pre>";
echo $e;
echo "</pre>";
}
Después de eso, fue fácil resolver el problema.
https://github.com/loic-sharma/profiler Este es un buen ejemplo de alternativa a la barra de depuración Laravel3.
@Matanya : ¿has mirado los registros de tu servidor para ver QUÉ es realmente el error 500? Podría ser cualquier cantidad de cosas
@Aladin - pantalla blanca de la muerte (WSOD) se puede diagnosticar de tres maneras con Laravel 4.
Opción 1: vaya a sus registros de Laravel (aplicación / almacenamiento / registros) y vea si el error está contenido allí.
Opción 2: Acceda a los registros del servidor PHP y busque el error PHP que está causando el WSOD
Opción 3: Buenas habilidades de depuración antiguas: agregue un comando de morir (''hello'') al comienzo de su archivo de rutas; luego, muévalo más y más a su aplicación hasta que ya no vea el mensaje ''hola''. Con esto, podrá reducir la línea que está causando su WSOD y solucionar el problema.