私はRuby環境にかなり慣れていないので、RubyおよびRailsアプリケーションで使用するための優れたロギングフレームワークを探していました。
以前の経験では、log4jとlog4p(perlポート)の使用に成功し、log4rと同じレベルのユーザビリティ(および成熟度)を期待していました。
ただし、log4rフレームワークにはまったく明確でないことがいくつかあると言わざるを得ません。
1ロガーの継承
ロガーの継承はまったく管理されていないようです!
'myapp'という名前のロガーを宣言してから、ロガー名'myapp :: engine'を取得しようとすると、ルックアップはNameErrorで終了します。
フレームワークが命名スキームに従ってルートロガーを返し、「myapp」ロガーを使用することを期待します。
Q1:もちろん、これを回避し、ルックアップメソッドを使用して自分で名前を管理することはできますが、余分なコーディングなしでこれを行うためのよりクリーンな方法はありますか?
2YAML構成
私を混乱させる2番目のことはyaml構成です。log4rサイトには、このシステムに関する情報は文字通りありません。ドキュメントは欠落しているページにリンクしているため、私が見つけることができるすべての情報は、gemのexamplesディレクトリに含まれています。
yaml構成にはpre_configセクションが含まれている必要があり、独自のレベルを定義する必要があるという事実とはかなり混乱していました。
pre_configセクションを削除するか、すべての「カスタム」レベルを標準レベル(debug、info、warn、fatal)に置き換えると、この例では次のエラーがスローされます。
log4r/yamlconfigurator.rb:68:in `decode_yaml': Log level must be in 0..7 (ArgumentError)
したがって、フレームワークのロガーとアペンダーのみを宣言する単純なファイルを使用する方法はないようです。
Q2:私は本当に何かを逃したと思います、そしてそれは単純なyamlconfファイルを提供する方法であるに違いありません。そのような使い方の例はありますか?
3XMLファイルでの変数の置換
Q3:Yaml構成システムはそのような機能を提供しているようですが、XMLファイルで同様の機能を見つけることができませんでした。何か案は ?
4つの選択肢?
log4jや他のlog4jポートと比較して、log4rの機能レベルと成熟度に非常に失望していると言わざるを得ません。
私は他の言語でAPIをログに記録するという確かなバックグラウンドを持つこのフレームワークに遭遇し、「基本的なもの」を「実世界のアプリケーション」で実行するためだけにあらゆる種類の作業を行っています。
つまり、いくつかのgem、コンソール/スクリプトアプリ、Rails Webフロントエンドで構成される複雑なアプリケーションを意味します。ここでは、構成を相互化する必要があり、名前空間と継承を集中的に使用します。
より適切または成熟したものを見つけるためにいくつかの検索を実行しましたが、類似したものは見つかりませんでした。
Q4:エンタープライズクラスのアプリで使用できるlog4rフレームワークの(深刻な)代替案を知っていますか?
このすべてを読んでくれてありがとう!
ポインタをいただければ幸いです。
敬具、