6

私はSunspotSolrでRubyonRailsを検索することで素晴らしい経験をしましたが、そのログファイルは信じられないほど大きくなり、これらのログを回転オーバーライド、またはオフにする方法を見つけることができないようです(私が追求したくないハッキーな方法)。

config /sunspot.ymlというファイルがあり、 log_levelフラグをSEVEREに設定しようとしましたが、効果がありませんでした。

標準のLogger.configローテーション方法を使用してみましたが、開発ログの出力が新しく作成されたファイルに送信されました。

私はあなたが提供できるどんな提案でも大いに感謝します。

4

5 に答える 5

5

少し遅れていますが、config/sunspot.yml 内で処理されるようになりました:

production:
  solr:
    hostname: thorn
    port: 8983
    log_level: WARNING
    min_memory: 512M
    max_memory: 1G
    solr_home: /u/solr
于 2012-07-29T20:15:28.110 に答える
5

コンソールでは、これによりすべてのログがオフになります。

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

私の宝石のバージョン:

  • 黒点 (2.0.0.pre.130115)
  • sunspot_rails (2.0.0.pre.130115)
  • sunspot_solr (2.0.0.pre.130115)
于 2013-03-13T03:32:25.533 に答える
1

logging.propertiesJava コンテナーのロギング動作をカスタマイズするための Solr ファイルを探しています。Sunspot は、組み込みの Solr インスタンスに Jetty を使用します。Solr wiki では、 http://wiki.apache.org/solr/LoggingInDefaultJettySetuplogging.propertiesで Jetty をカスタマイズする手順が提供されています。

Sunspot のレーキ タスクのソース コードを確認して、独自のlogging.properties. これは、Sunspotへの潜在的なパッチのSunspot メーリング リストで提起する興味深い質問になると思います。

于 2011-02-15T02:57:09.447 に答える
1

現在、log_level は正しく処理されません。修正は2.x リリースであるGithubにあります。

次の gem リリースまでお待ちください。また、リスクを恐れず、恐れていない場合は、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
}
于 2013-01-31T06:17:26.703 に答える
0

この正確な問題を解決するために、sunspot_solr の適切なファイルにモンキー パッチを適用しました。

このコードは、sunspot_solr gem で直接行われる再設計/リファクタリングに耐えられるほど堅牢ではありません。そのため、sunspot_solr gem のバージョンを 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
于 2012-01-09T16:41:39.873 に答える