Rails-демон не выводит никакой информации журнала - PullRequest
2 голосов
/ 17 июня 2011

У меня есть пользовательский демон в моем приложении Rails. Это довольно просто (ищет в БД «запланированные» задания и «запускает» их). Это отлично работало в средах разработки и тестирования, но, конечно, демон отказывается даже запускаться в производство. Что еще хуже, я не могу заставить его генерировать какой-либо вывод журнала, поэтому я не уверен, что происходит не так.

На самом деле, даже в среде разработки демон не генерировал никакого вывода журнала. Вот мой конфиг / daemons.yml:

dir_mode: script
dir: ../../log
multiple: true
backtrace: true
monitor: true
log_output: true

И мой lib / daemon / xyz_ctl:

#!/usr/local/bin/ruby
require 'rubygems'
require "daemons"
require 'yaml'
require 'erb'
require 'active_support'

options = YAML::load(
  ERB.new(
  IO.read(
  File.dirname(__FILE__) + "/../../config/daemons.yml"
  )).result)
options["dir_mode"] = options["dir_mode"].to_sym

Daemons.run File.dirname(__FILE__) + '/xyz.rb', options

В каталоге журнала нет ничего, кроме файлов .log, и они не получают никакого вывода. Любые идеи о том, как я могу получить это, чтобы даже вывести некоторые записи?

Ответы [ 2 ]

1 голос
/ 13 сентября 2011

У меня только что была такая же проблема. Регистратор по умолчанию не сбрасывался.

Попробуйте добавить следующее в lib / daemons / xyz.rb - либо после инициализации приложения Rails, если вам это нужно, либо в цикле while:

Rails.logger.auto_flushing = true

Если вы использовали генератор демонов, вы, вероятно, обнаружите, что строка добавлена ​​по умолчанию, и вы удалили ее в какой-то момент: o)

1 голос
/ 17 июня 2011

Я все еще не могу заставить запись работать, но я запустил демон в производство.В производственной среде у меня были и v3.0.7, и v3.0.8: actionmailer, actionpack, activemodel, activerecord, activeresource и activesupport.У моей виртуальной машины dev было только 3.0.7. Удаление 3.0.8 помогло.Но молчание журнала все еще беспокоит меня: (

Обновление: использование логгера в демоне работает в режиме разработки (с использованием информационного уровня), но не в рабочей (я подозреваю, что производственная среда не регистрирует сообщения информационного уровня)по умолчанию? Я еще не проверял это) .. Сейчас закрываем: \

...