2011-05-04 16 views
11

En el pasado, pensé que estaba loco. Puede que sí, pero mi registro de producción no responde en absoluto a algunas solicitudes. Estoy PUBLICANDO imágenes en mi aplicación de rieles desde un cliente móvil, luego OBTENGO una vista actualizada en un navegador web. El registro modificado es claramente visible. Ninguno de los anteriores se muestra en mi registro de producción, pero se registraron solicitudes similares hace una hora. No he cambiado ningún archivo de configuración. No reinicié mi servidor. ¿Alguna sugerencia de por qué esto está sucediendo?Registro de producción no funciona

Respuesta

2

memoria baja es la causa más probable es que he sido capaz de llegar a. Publicaré aquí si puedo probarlo.

+0

Más recientemente, esto puede deberse a https://github.com/rails/rails/issues/4204 –

11

comprobar qué valor se establece en

config.log_level = :warn 

en su

/rails_app/config/enviroments/production.rb 

FYI

Los niveles de registro disponibles son:: depuración, : información,: advertir,: error, fatal

Por lo tanto, si establece el nivel en fatal, solo se registrarán los errores graves. Si lo configura para depuración, casi todo se registrará. Por defecto en producción está configurado para advertir. Esto es por una buena razón. Como no desea que se acumulen grandes archivos de registro en su servidor de producción sin ningún motivo.

+0

config.consider_all_requests_local = true config.action_controller.perform_caching = false config.log_level =: depuración (establecido hace cinco días) –

+0

es posible que haya algún tipo de una capa de almacenamiento en caché en el medio? eso es responder a las peticiones de tu cliente? ¿Puedes verificar que la aplicación Rails está recibiendo las solicitudes que deseas que se registren? – thekindofme

+0

No sé cuál sería la otra capa de almacenamiento en caché. Utilizo CloudFlare para dns security/caching/analytics, pero está en "modo de desarrollo" que solo se aplica a archivos estáticos de todos modos. Si mis cargas de imágenes se publican con éxito en la aplicación Rails, no veo por qué no se registrarán. –

2

I resuelto el problema poniendo

Rails.logger.instance_variable_get(:@logger).instance_variable_get(:@log_dest).sync = true if Rails.logger 

en mis config/inicializadores/...

+0

'método indefinido ' sync = 'for nil: NilClass (NoMethodError) 'rails 4.1.2 – RAJ

+0

en qué archivo pusiste esto? – unclesol

6

En mi caso he añadido primera config.log_level = :debug a production.rb archivo luego tuve que crear el archivo production.log (en la carpeta de registro), dando los permisos apropiados con el comando chmod.

+1

chmod lo resolvió por mí, gracias. – HelloWorld

+0

¿Cuáles son los permisos apropiados? – unclesol

+0

@unclesol, creo que 0644 –

0

Tuve el mismo problema relacionado con el registro de producción.

de rastrear problema con el servidor web:

tail -f /var/log/apache2/error.log 

mensaje de la aplicación: Permiso denegado -/var/www/nombre-aplicación/log/invitación.log (Errno :: EACCES)

cd /var/www/APPLICATION-NAME/log 

utilizando el comman ll obtendrá permisos de registro

total 28 
drwxr-sr-x 2 www-data www-data 4096 Sep 18 03:55 ./ 
drwxrwsr-x 14 www-data www-data 4096 Sep 24 23:52 ../ 
-rw-r--r-- 1 root  www-data 71 Sep 18 03:55 agent_invitation.log 
-rwxrwxrwx 1 root  www-data 71 Sep 18 03:55 email.log* 
-rw-r--r-- 1 root  www-data 71 Sep 18 03:55 invitation.log 
-rw-r--r-- 1 root  www-data 71 Sep 18 03:55 messages.log 
-rw-r--r-- 1 root  www-data 51 Sep 13 01:32 production.log 

Solución: tiene que cambiar el propietario de la raíz a otro usuario:

chown www-data:www-data ./ -R 

Ahora usa ll para ver los permisos

total 28 
drwxr-sr-x 2 www-data www-data 4096 Sep 18 03:55 ./ 
drwxrwsr-x 14 www-data www-data 4096 Sep 24 23:52 ../ 
-rw-r--r-- 1 www-data www-data 71 Sep 18 03:55 agent_invitation.log 
-rwxrwxrwx 1 www-data www-data 71 Sep 18 03:55 email.log* 
-rw-r--r-- 1 www-data www-data 71 Sep 18 03:55 invitation.log 
-rw-r--r-- 1 www-data www-data 71 Sep 18 03:55 messages.log 
-rw-r--r-- 1 www-data www-data 51 Sep 13 01:32 production.log 

reinicio del servidor web:

sudo service apache2 restart 

Ahora compruebe los registros de producción.

Cuestiones relacionadas