12
votes

Journal de production ne fonctionne pas

Dans le passé, je pensais être juste fou. Je peux être, mais mon journal de production ne répond pas à certaines demandes. Je pose des images sur My Rails App à partir d'un client mobile, puis d'obtenir une vue actualisée dans un navigateur Web. L'enregistrement modifié est clairement visible. Aucune de ces informations ci-dessus ne se présente dans mon journal de production, mais des demandes similaires ont été enregistrées il y a une heure. Je n'ai pas changé de fichiers de configuration. Je n'ai pas redémarré mon serveur. Toute suggestion quant à la raison pour laquelle cela se produit?


0 commentaires

7 Réponses :


12
votes

Vérifiez quelle valeur est définie sur xxx

dans votre xxx

fyi

Les niveaux de journalisation disponibles sont :: Débogage, : info ,: avertir ,: error,: fatal.

Donc, si vous définissez le niveau sur fatal, seules les erreurs sérieuses seront enregistrées. Si vous le définissez à déboguer, presque tout sera enregistré. Par défaut dans la production, il est prêt à avertir. C'est avec une bonne raison. Comme vous ne voulez pas que les fichiers journaux énormes s'accumulent sur votre serveur de production sans raison.


5 commentaires

config.Consider_all_requests_local = true config.action_controller.perform_caching = false config.log_level =: débogage (défini il y a cinq jours)


Est-il possible qu'il existe une sorte de couche de cache entre-deux? C'est répondant aux demandes de votre client? Pouvez-vous vérifier que l'application Rails obtient réellement les demandes que vous souhaitez qu'il connecte?


Je ne sais pas ce que l'autre couche de cache serait. J'utilise Cloudflare pour DNS Security / Caching / Analytics, mais il est en "mode de développement" qui ne s'applique qu'aux fichiers statiques de toute façon. Si mes téléchargements d'image sont affichés avec succès dans l'application Rails, je ne vois pas pourquoi ils ne seraient pas enregistrés.


Toujours rien: mon environnement local n'est pas connecté lors de la production de production


Juste pour être approfondi, le log_level pour la production est: info. Pour le développement et le test, c'est: débogage. Guides.RubyonRails.org/v3.2.12/...



2
votes

La mémoire faible est la cause la plus probable que j'ai pu venir avec. Je posterai ici si je peux le prouver.


0 commentaires

2
votes

J'ai résolu le problème en mettant xxx

dans mes configuration / initialiseurs /...< p>


3 commentaires

Méthode non définie 'Sync =' pour Nil: Nilclass (Nométhoderror) Rails 4.1.2


Dans quel fichier avez-vous mis cela?


@Carl Tout fichier se terminant par .rb dans Config / Initialiseurs. Il est courant d'ajouter un nombre quelconque de fichiers que vous voulez là-bas. Par exemple, vous pouvez le mettre dans un fichier appelé config / initialiseurs / setup_logger_sync.rb



6
votes

Dans mon cas, j'ai d'abord ajouté config.log_level =: débogage à production.rb fichier puis je devais créer le production.log Fichier (dans le dossier de journal), puis donnant des autorisations appropriées avec la commande chmod .


2 commentaires

Quelles sont les autorisations appropriées?


@unclesol, je pense 0644



0
votes

J'ai eu le même problème lié au journal de production.

de tracer le problème avec le serveur Web: xxx

Message de l'application: Autorisation refusé - /var/www/application-name/log/invitation.log (errno :: eaux) xxx

Utilisation de la comman ll Vous obtiendrez des autorisations de journalisation xxx

solution: Avoir à modifier le propriétaire de root vers un autre utilisateur: xxx

utilise maintenant ll pour voir les autorisations xxx

redémarrez votre serveur Web: xxx

Vérifiez maintenant les journaux de production.


0 commentaires

0
votes

J'avais le même problème. Essayé tout sur ce site. Enfin j'ai vérifié la valeur de rails.logger code> dans la console. Il a donné la sortie suivante. xxx pré>

puis j'ai crucé avec un autre projet de rails et qui donnait la sortie ci-dessous p> xxx pré>

Vous pouvez clairement voir que les deux projets utilisaient des projets différents enregistreurs pour montrer la sortie. Je ne veux pas donner à la connexion à STDOUT, j'ai donc changé mon enregistreur à ActiveSupport en créant un fichier d'initialisateur. P>

config/initializer/logger.rb 

Rails.logger = ActiveSupport::Logger.new('log/production.log')


0 commentaires

1
votes

Dans mon cas, j'ai eu le gemme suivant rails_12Factor dans mon gemfile pour la production.

alors j'ai dû

  1. Supprimer rails_12Factor de mon gemfile
  2. GEM Désinstallation Rails_12Factor
  3. bundle installer

    Et sur la prochaine poussée à la production, les journaux ont fonctionné pour moi. FYI: J'utilise des rails 5.2.1, mais l'application Web Rails a commencé dans les rails 3.


0 commentaires