問題タブ [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.

0 投票する
0 に答える
231 参照

ruby - Log4r が数日後 (7 日) にログを書き込んでいない

プロセスの 2 つのインスタンスが各サーバー (合計 2 つのサーバー) で実行され、プロセスが開始されてから 1 週間後に、4 つのログ ファイルすべて (各プロセスにはそれぞれのログ ファイルがあります) へのログの書き込みが停止しました。プロセスはまだ実行中ですが、各プロセスはそれぞれのログ ファイルの更新を停止しています。

以下は、log4rを初期化し、ログを書き込む方法です。

ここでは、最大サイズは 104MB、時間は 604800 秒、最大バックアップ数は 0 に設定されています。

0 投票する
1 に答える
214 参照

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:inblock 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:ineach' /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:indecode_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:inload_xml_file' /root/src/upside/common/upside_logger.rb :16:in initialize' /root/src/upside/common/logger_factory.rb:7:innew' /root/src/upside/common/logger_factory.rb:7:in new_logger' /root/src/upside/config/application.rb:30:inblock 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:inexecute_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:ineach' /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:inbefore_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:inrequire' /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:intap' /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:inrequire' /root/src/upside/script/rails:6:in `'

gem のインストールを再確認しましたが、emailoutputter.rb は他のアウトプッター (正しく機能する) と一緒に正しいディレクトリにあります。

ありがとう!

0 投票する
2 に答える
474 参照

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 ) に解決されます。

なぜこれが起こっているのか、または解決策が何であるかはわかりません。

0 投票する
1 に答える
1352 参照

ruby - NameError: uninitialized constant Logger - これを別の方法で行う必要がありますか?

Ruby の初心者で、Mini Test と log4r で遊んで、ラッパー クラスを作成しようとしています。

次のエラーが発生します。

クラスは次のとおりです。

そして、ここにテストがあります:

おそらく両方のファイルにいくつかのエラーがあることを最初に認めますが (私はまだ学習中です)、一度に 1 つずつステップを踏んでみます。

これを行うにはおそらくいくつかの方法がありますが、これがその1つであるかどうかはわかりません。

を使用@log = ::Logger.newすることは表面上は妥当に思えますがinclude log4r、代わりにモジュールを拡張するために を実行する必要がありますか? ( Rubyごと: モジュール、require および include )

関連するSOの記事を検索し、「初期化」する引数に関してWebで検索しました。それらは直接関係がないか、私が誤解しています。任意の支援をいただければ幸いです。