Cómo activar todos los errores y advertencias y registrarlos en un archivo, pero para configurar todo eso en el script (sin cambiar nada en php.ini). Quiero definir un nombre de archivo y para que todos los errores y advertencias se conecten.¿Cómo registrar errores y advertencias en un archivo?
Respuesta
Ver
error_log
- Enviar un mensaje de error en alguna parte
Ejemplo
error_log("You messed up!", 3, "/var/tmp/my-errors.log");
Puede customize error handling with your own error handlers llamar a esta función para que cada vez que un error o una advertencia o lo que necesitan para iniciar sesión ocurre. Para obtener información adicional, consulte Chapter Error Handling in the PHP Manual
Observe la opción de configuración log_errors
en php.ini. Parece hacer justo lo que quieres. Creo que puede usar la opción error_log
para establecer su propio archivo de registro también.
Cuando la directiva log_errors
se establece en On
, los errores reportados por PHP habría que iniciar sesión para el registro del servidor o el archivo especificado con error_log
. Puede configurar estas opciones también con ini_set
, si es necesario.
(Tenga en cuenta que display_errors
debe ser desactivado en php.ini si esta opción está activada)
utilizar el siguiente código:
ini_set("log_errors", 1);
ini_set("error_log", "/tmp/php-error.log");
error_log("Hello, errors!");
a continuación, ver el archivo:
tail -f /tmp/php-error.log
O actualice php.ini
como se describe en this blog entry de 2008.
'ini_set' solo funciona si ese código se ejecuta. No es útil para el código que tiene * errores de análisis * porque el error será * antes * de que se ejecute el código. En su lugar, escriba esos cambios en php.ini. – hakre
Si no puede editar php.ini, debe poder agregar esto en .htaccess: 'php_flag log_errors en php_value error_log/home/path/public_html/domain/PHP_errors.log'. Ver http://perishablepress.com/how-to-enable-php-error-logging-via-htaccess/ – Matthieu
Tengo una pregunta, ¿cómo hacer que el archivo error.log se cree en mi carpeta htdocs en su lugar? – Tommy
añadir este código en .htaccess (si usted no tiene acceso a php.ini )
<IfModule mod_php5.c>
php_flag log_errors on
php_value error_log ./path_to_MY_PHP_ERRORS.log
</IfModule>
P. S. esto es para servidores de tipo Apache.
Sin embargo, esto tiene que ver específicamente con el módulo PHP de Apache. – SacredSkull
Además, necesita la directiva "AllowOverride Options" para que esto funcione. (Apache 2.2.15)
Esa es mi función corta personales
# logging
/*
[2017-03-20 3:35:43] [INFO] [file.php] Here we are
[2017-03-20 3:35:43] [ERROR] [file.php] Not good
[2017-03-20 3:35:43] [DEBUG] [file.php] Regex empty
mylog ('hallo') -> INFO
mylog ('fail', 'e') -> ERROR
mylog ('next', 'd') -> DEBUG
mylog ('next', 'd', 'debug.log') -> DEBUG file debug.log
*/
function mylog($text, $level='i', $file='logs') {
switch (strtolower($level)) {
case 'e':
case 'error':
$level='ERROR';
break;
case 'i':
case 'info':
$level='INFO';
break;
case 'd':
case 'debug':
$level='DEBUG';
break;
default:
$level='INFO';
}
error_log(date("[Y-m-d H:i:s]")."\t[".$level."]\t[".basename(__FILE__)."]\t".$text."\n", 3, $file);
}
En pocas palabras estos códigos en la parte superior de su archivo PHP/index:
error_reporting(E_ALL); // Error engine
ini_set('display_errors', TRUE); // Error display
ini_set('log_errors', TRUE); // Error logging
ini_set('error_log', 'your/path/to/errors.log'); // Logging file
ini_set('log_errors_max_len', 1024); // Logging file size
Eso es sólo si * * También desea que todos los errores que se muestran en la producción y/o al navegador, * * Además de la tala. 'Display_errors' NUNCA debe ser activada en un servidor de producción en vivo - dicha Directiva es específicamente para la salida al usuario, y no tiene ningún efecto sobre la tala. http://www.php.net/manual/en/errorfunc.configuration.php#ini.display_errors –
- 1. Desactivar advertencias y errores en php/mysql
- 2. CMake colorear errores y advertencias
- 3. PHP: ¿Cómo registrar errores fatales?
- 4. ¿Hay un patrón para propagar detalles de errores y advertencias?
- 5. Mostrando todos los errores y advertencias
- 6. xcodebuild no genera advertencias y errores?
- 7. Javac: trate advertencias como errores
- 8. Tratando advertencias como errores
- 9. GCC y makefile: mostrar solo errores y advertencias
- 10. Cómo registrar la excepción en un archivo?
- 11. ¿Puedes registrar errores php en varios archivos?
- 12. ¿Cómo puedo registrar los errores de Rails en un archivo de registro separado?
- 13. Spring - slf4J: ¿cómo registrar automáticamente errores y excepciones?
- 14. conversión de advertencias a errores en MATLAB
- 15. Suprimir todos los resultados de salida, excepto errores y advertencias
- 16. ¿Cómo registrar un número de serie en un archivo ejecutable?
- 17. Cómo registrar errores, mensajes en una prueba de unidad NUnit?
- 18. Ejecutar nosetests con advertencias como errores?
- 19. Detecta advertencias/errores de Mathematica sin mostrarlos
- 20. Javadoc: ¿trata las advertencias como errores?
- 21. django-sentry no registra advertencias, errores, etc.
- 22. ¿Puede ghc tratar ciertas advertencias especificadas como errores y otras como advertencias?
- 23. ¿Cómo puedo dejar de registrar accidentalmente un archivo en TFS
- 24. ¿Cómo trato las advertencias de LaTeX como errores?
- 25. ¿Cómo ignorar HTMLUnit advertencias/errores relacionados con jQuery?
- 26. Registrar todos los errores en la consola o archivo en el sitio de Django
- 27. advertencias de Búsquedas Python/errores a un número de línea en numpy y SciPy
- 28. "Tratar todas las advertencias como errores, excepto ..." en Visual Studio
- 29. ¿Cómo excluir una carpeta que está produciendo advertencias/errores en un proyecto de Eclipse?
- 30. Deshabilitar las advertencias que se tratan como errores (cc1.exe)
'¿Por qué display_errors' ser desactivada si habilitar 'log_errors'? No tiene sentido en mi opinión. :) –
Porque no hay necesidad de mostrar el contenido de los errores al público en un servidor de producción, especialmente si el texto del error se registra de forma discreta en un archivo. – Shabbyrobe
Los errores de visualización siempre deben deshabilitarse en el servidor de producción. No si el registro de errores está configurado en otro lugar, pero siempre. Los errores se registran en el registro de errores de apache de manera predeterminada, eso es suficiente. – Pihhan