Tengo problemas para conseguir que los registros de entorno dev funcionen en Symfony 1.4.8. Mientras tanto, los registros en el entorno de prod trabaja a la perfección con la misma configuración. No estoy seguro de lo que está mal con mi entorno de desarrollo.Symfony 1.4 dev logging no funciona
Las ideas es para registrar los mensajes en Acción y archivos de plantilla utilizando el siguiente código:
sfContext::getInstance()->getLogger()->err('Error Message Here!!!');
Sin embargo, mensaje de error no aparece en frontend_dev.log en el entorno dev. Para habilitar el registro, modifiqué settings.yml y factories.yml; Borré la memoria caché y los registros de Symfony. Por alguna extraña razón, Symfony no generó un nuevo frontend_dev.log en el entorno de desarrollo después de que borre los registros (eliminando el anterior). Por otro lado, en el entorno de producción, Symfony generó un frontend_prod.log en blanco después de ejecutar el comando clear logs. No estoy seguro de qué fue lo que causó esto y si esto tiene algo que ver con el registro no funciona en el entorno de desarrollo.
Éstos son los ajustes en mi settings.yml y factories.yml
settings.yml:
prod:
.settings:
no_script_name: true
logging_enabled: true
cache: false
etag: false
dev:
.settings:
error_reporting: <?php echo (E_ALL | E_STRICT)."\n" ?>
logging_enabled: true
web_debug: true
cache: false
no_script_name: false
etag: false
factories.yml:
prod:
# logger:
# class: sfNoLogger
# param:
# level: err
# loggers: ~
logger:
class: sfAggregateLogger
param:
level: err
loggers:
sf_web_debug:
class: sfWebDebugLogger
param:
level: debug
condition: %SF_WEB_DEBUG%
xdebug_logging: true
web_debug_class: sfWebDebug
sf_file_debug:
class: sfFileLogger
param:
level: debug
file: %SF_LOG_DIR%/%SF_APP%_%SF_ENVIRONMENT%.log
dev:
mailer:
param:
delivery_strategy: none
logger:
class: sfAggregateLogger
param:
level: debug
loggers:
sf_web_debug:
class: sfWebDebugLogger
param:
level: debug
condition: %SF_WEB_DEBUG%
xdebug_logging: true
web_debug_class: sfWebDebug
sf_file_debug:
class: sfFileLogger
param:
level: debug
file: %SF_LOG_DIR%/%SF_APP%_%SF_ENVIRONMENT%.log
favor hágamelo Sé lo que estoy haciendo mal. Gracias.
Actualización:
También había intentado llamar al siguiente en actions.class.php
$this->logMessage('ErrorMessageHere', 'err');
mismo resultado, me dieron el mensaje de error en entorno de producción, pero no en el entorno dev.
también traté de restablecer el permiso de llamar
php symfony project:permission
>> chmod 777 /var/www/ac2/web/uploads
>> chmod 777 /var/www/ac2/cache
>> chmod 777 /var/www/ac2/log
>> chmod 777 /var/www/ac2/symfony
>> chmod 777 /var/www/ac2/cache/frontend
......
drwxrwxrwx 2 www-data www-data 4096 2011-11-16 11:51 log
apareció ningún error y parece que la carpeta de registro tiene los permisos correctos. Lo mismo sucedió, en el entorno de desarrollo symfony no creó el archivo de registro frontend_dev.log, pero en el modo prod después de borrar los registros, se creó un frontend_prod.log en blanco.
Esta es mi frontend_dev.php:
<?php
// this check prevents access to debug front controllers that are deployed by accident to production servers.
// feel free to remove this, extend it or make something more sophisticated.
if (!in_array(@$_SERVER['REMOTE_ADDR'], array('127.0.0.1', '::1', '192.168.1.55')))
{
die('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');
}
require_once(dirname(__FILE__).'/../config/ProjectConfiguration.class.php');
$configuration = ProjectConfiguration::getApplicationConfiguration('frontend', 'dev', true);
sfContext::createInstance($configuration)->dispatch();
Actualización 2:
simplemente he encontrado algo interesante con mis registros en dev y entorno prod.
En mi proyecto de Symfony hay muchos módulos en las aplicaciones, he estado probando el registro de mensajes en 2 módulos tanto en Acciones como en Plantillas. Sin embargo, hoy noté un evento interesante, cuando probé en otros módulos, el entorno de desarrollo produjo un mensaje de error y prod no. Y si inserto registros de errores en 4-5 módulos, algunos de los registros aparecerán en frontend_dev.log y otros aparecerán en frontend_prod.log. Intenté borrar el caché y borrar los registros; aún así, los mismos módulos producirían errores en frontend_dev.log y otros módulos producirían errores en frontend_prod.ingrese
Por ejemplo: He activado en el entorno prod /web/index.php y añade el siguiente código de registro de errores en 4 actions.class.php diferente en 4 módulos diferentes
$this->logMessage('errortest1', 'err');
$this->logMessage('errortest2', 'err');
$this->logMessage('errortest3', 'err');
$this->logMessage('errortest4', 'err');
Si habilito tanto dev y prod el registro de errores en el entorno de prod. errortest1 y errortest2 aparecerán en frontend_dev.log y errortest3 y errortest4 aparecerán en frontend_prod.log Si solo habilito el registro de error prod en el entorno prod. frontend_dev.log estará vacío y errortest3 y errortest4 aparecerán en frontend_prod.log Si solo habilito el registro de error dev en el entorno de desarrollo. errortest1 y errortest2 aparecerán en frontend_dev.log y frontend_prod.log estarán vacíos
Así que no estoy seguro de lo que está pasando, ¿se corrompió mi proyecto de Symfony?
No puedo encontrar ningún error allí. Intente comprobar el permiso de su carpeta/log – samura
En una nota lateral, en sus acciones, use esto para registrar mensajes: $ this-> logMessage ("Error!", "Err"). No vuelva a crear instancias de la clase sfContext singleton en la acción. – Flukey
Gracias muchachos por su ayuda. Restablecí los permisos del proyecto llamando al: "php symfony project: permission". Intenté "$ this-> logMessage ('ErrorMessage', 'err'); el mismo resultado, pude obtener el mensaje de error en el entorno de producción pero no en el entorno de desarrollo. Examinaré las reglas dev_debug y prod_debug, tal vez Me falta algo allí. – TSCOconan