Как повернуть, переопределить или отключить ведение журнала в Sunspot Solr Rubygem? - PullRequest
5 голосов
/ 12 февраля 2011

У меня был большой опыт поиска Sunspot Solr для Ruby on Rails, однако его файлы журналов становятся невероятно большими, и я не могу найти способ либо rotate , переопределить или отключить эти журналы (кроме очень хакерских методов, которые я бы не хотел использовать).

У меня есть файл, sunspot.yml в config / , где я пытался установить для флагов log_level значение SEVERE , однако это не имело никакого эффекта.

Я пытался использоватьоднако стандартные Logger.config методы ротации, которые только что отправили мой вывод development log во вновь созданные файлы.

Буду очень признателен за любые предложения, которые вы можете предложить.

Ответы [ 5 ]

5 голосов
/ 13 марта 2013

В консоли это отключает все журналы для меня:

Sunspot::Rails::LogSubscriber.logger.level = 4
ActiveRecord::Base.logger.level = 4
Rails.logger.level = 4

Версии My Gem:

  • солнечное пятно (2.0.0.pre.130115)
  • sunspot_rails (2.0.0.pre.130115)
  • sunspot_solr (2.0.0.pre.130115)
4 голосов
/ 30 июля 2012

Уже немного поздно, но похоже, что теперь это обрабатывается внутри config / sunspot.yml:

production:
  solr:
    hostname: thorn
    port: 8983
    log_level: WARNING
    min_memory: 512M
    max_memory: 1G
    solr_home: /u/solr
1 голос
/ 31 января 2013

В настоящее время log_level не обрабатывается правильно. Исправление на Github , который является 2.x выпуском.

Вы можете дождаться следующего релиза гема.А если вы не рискуете и не боитесь риска, вы можете использовать в Gemfile следующее:

# use selectively
gem 'sunspot_rails', :git => "git://github.com/sunspot/sunspot.git", :require =>  "sunspot_rails"
gem 'sunspot_solr', :git => "git://github.com/sunspot/sunspot.git", :require => "sunspot_solr"

Я использую Linux logrotate:

/home/path/log/*.log {
  su username pwd
  daily
  missingok
  rotate 7
  delaycompress
  notifempty
  copytruncate
}
1 голос
/ 15 февраля 2011

Вы ищете файл Solr logging.properties для настройки поведения ведения журнала Java-контейнера.Sunspot использует Jetty для встроенного экземпляра Solr.В вики Solr содержатся инструкции по настройке logging.properties в Jetty по адресу http://wiki.apache.org/solr/LoggingInDefaultJettySetup.

. Возможно, вам потребуется просмотреть исходный код для задач с граблями Sunspot, чтобы определить наилучшее место для инъекции logging.properties.Я полагаю, что это будет интересный вопрос, который нужно поднять в списке рассылки Sunspot для возможного исправления для Sunspot.

0 голосов
/ 09 января 2012

Я исправил соответствующий файл в sunspot_solr, чтобы решить эту проблему.

Этот код недостаточно надежен, чтобы выдержать реархитектуру / рефакторинг, выполненный непосредственно в геме sunspot_solr, поэтому я рекомендую заблокировать версию гема sunspot_solr до 1.3.0, чтобы это удалось.

Вы можете добавить следующее в ваш проект. Мы используем его в проекте Rails и поместили его в lib / sunspot / solr / server.rb:

module Sunspot
  module Solr
    class Server #:nodoc:

      def logging_config_path
        puts "# ==> Using monkey-patched Sunspot::Solr::Server#logging_config_path method"

        return @logging_config_path if defined?(@logging_config_path)
        @logging_config_path =
        if log_file
            logging_config = Tempfile.new('logging.properties')
            logging_config.puts("handlers = java.util.logging.FileHandler")
            logging_config.puts("java.util.logging.FileHandler.level = #{log_level.to_s.upcase}")
            logging_config.puts("java.util.logging.FileHandler.pattern = #{log_file}")
            logging_config.puts("java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter")

            # >>> ADDED THE FOLLOWING TWO LINES FOR JAVA-BASED LOG ROTATION <<<
            logging_config.puts("java.util.logging.FileHandler.count = 7")
            logging_config.puts("java.util.logging.FileHandler.limit = 104857600") # 100 megs

            logging_config.flush
            logging_config.close
            logging_config.path
          end
        end


      end # class Server
    end # module Solr
  end # module Sunspot
...