問題タブ [log4r]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby - Log4r が数日後 (7 日) にログを書き込んでいない
プロセスの 2 つのインスタンスが各サーバー (合計 2 つのサーバー) で実行され、プロセスが開始されてから 1 週間後に、4 つのログ ファイルすべて (各プロセスにはそれぞれのログ ファイルがあります) へのログの書き込みが停止しました。プロセスはまだ実行中ですが、各プロセスはそれぞれのログ ファイルの更新を停止しています。
以下は、log4rを初期化し、ログを書き込む方法です。
ここでは、最大サイズは 104MB、時間は 604800 秒、最大バックアップ数は 0 に設定されています。
ruby-on-rails - Log4r コンフィギュレーターは、EmailOutputter をインスタンス化する例外をスローします
XML 構成ファイルを使用して Log4r をセットアップしていますが、EmailOutputter を正しく動作させることができません。これが私のoutputterタグです:
RubyMine ステップスルー デバッガーを使用して、すべての XML 変数が正しく渡されていることを 3 重および 4 重にチェックしました。例外メッセージは次のとおりです。
キャッチされない例外: アウトプッターの作成に関する問題: 初期化されていない定数 Log4r::Configurator::EmailOutputter /usr/local/lib/ruby/gems/1.9.1/gems/log4r-1.1.10/lib/log4r/configurator.rb:87:in block in decode_xml'
/usr/local/lib/ruby/1.9.1/rexml/element.rb:905:in
block in each' /usr/local/lib/ruby/1.9.1/rexml/xpath.rb:67:in each'
/usr/local/lib/ruby/1.9.1/rexml/xpath.rb:67:in
each' /usr/local/lib/ruby/1.9.1/rexml/element.rb:905:in each'
/usr/local/lib/ruby/gems/1.9.1/gems/log4r-1.1.10/lib/log4r/configurator.rb:87:in
decode_xml' /usr/local/lib/ruby/gems/1.9.1/gems/log4r-1.1.10/lib/log4r/configurator.rb:82:in actual_load'
/usr/local/lib/ruby/gems/1.9.1/gems/log4r-1.1.10/lib/log4r/configurator.rb:56:in
load_xml_file' /root/src/upside/common/upside_logger.rb :16:in initialize'
/root/src/upside/common/logger_factory.rb:7:in
new' /root/src/upside/common/logger_factory.rb:7:in new_logger'
/root/src/upside/config/application.rb:30:in
block in ' /usr/local/lib/ruby/gems/1.9.1/gems/activesupport-3.2.11/lib/ active_support/lazy_load_hooks.rb:34:incall'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-3.2.11/lib/active_support/lazy_load_hooks.rb:34:in
execute_hook' /usr/local/lib/ruby/gems/1.9.1/gems/activesupport-3.2.11/lib/active_support/lazy_load_hooks.rb:26:in block in on_load'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-3.2.11/lib/active_support/lazy_load_hooks.rb:25:in
each' /usr/local/lib/ruby/gems/1.9 .1/gems/activesupport-3.2.11/lib/active_support/lazy_load_hooks.rb:25:in on_load'
/usr/local/lib/ruby/gems/1.9.1/gems/railties-3.2.11/lib/rails/railtie/configuration.rb:43:in
before_configuration' /root/src/upside/config/application.rb:29:in <class:Application>'
/root/src/upside/config/application.rb:15:in
' /root/src/upside/config/ application.rb:14:in <top (required)>'
/usr/local/lib/ruby/gems/1.9.1/gems/railties-3.2.11/lib/rails/commands.rb:53:in
require' /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.2.11/lib/rails/commands.rb:53:in block in <top (required)>'
/usr/local/lib/ruby/gems/1.9.1/gems/railties-3.2.11/lib/rails/commands.rb:50:in
tap' /usr/local/ lib/ruby/gems/1.9.1/gems/railties-3.2.11/lib/rails/commands.rb:50:in <top (required)>'
/root/src/upside/script/rails:6:in
require' /root/src/upside/script/rails:6:in `'
gem のインストールを再確認しましたが、emailoutputter.rb は他のアウトプッター (正しく機能する) と一緒に正しいディレクトリにあります。
ありがとう!
ruby - 遅延ジョブで log4r を使用するとエラーが発生する
いくつかのバックグラウンド ジョブに遅延ジョブを使用する Rails 3.2 アプリ (Windows Server 2008 R2 上の Ruby 1.9.2p290) が動作しています。最近、Rails のデフォルトのロギングを log4r に置き換えましたが、Rails アプリでは問題なく動作しています。ただし、rake jobs:work
タスクを開始すると、アウトプッターが nil であるというエラーが表示されます。
遅延ジョブでlog4rを使用して成功した人はいますか? いくつかのポインターを使用できます。Google や DuckDuckGo で検索しても何も見つかりませんでした。
config/application.rb
スニペットは次のとおりです。
config/log4r.yml
ファイルは次のとおりです。
アップデート
デバッガーで rake タスクを実行した後、何が起こっているのかがわかりました。
Delayed::Worker
( delayed_job/lib/delayed/worker.rb 行 248 ) は、次のようなロガーの add メソッドを介してメッセージをログに記録しています。
Logger
これは、Ruby のクラスに対して有効で正しいものです。 Logger.html#method-i-add を参照してください。ただし、log4r を使用すると、アウトプッターを追加しようとするLog4r::Logger.add
( log4r/lib/log4r/logger.rb 行 119 ) に解決されます。
なぜこれが起こっているのか、または解決策が何であるかはわかりません。
ruby - NameError: uninitialized constant Logger - これを別の方法で行う必要がありますか?
Ruby の初心者で、Mini Test と log4r で遊んで、ラッパー クラスを作成しようとしています。
次のエラーが発生します。
クラスは次のとおりです。
そして、ここにテストがあります:
おそらく両方のファイルにいくつかのエラーがあることを最初に認めますが (私はまだ学習中です)、一度に 1 つずつステップを踏んでみます。
これを行うにはおそらくいくつかの方法がありますが、これがその1つであるかどうかはわかりません。
を使用@log = ::Logger.new
することは表面上は妥当に思えますがinclude log4r
、代わりにモジュールを拡張するために を実行する必要がありますか? ( Rubyごと: モジュール、require および include )
関連するSOの記事を検索し、「初期化」する引数に関してWebで検索しました。それらは直接関係がないか、私が誤解しています。任意の支援をいただければ幸いです。