
みなさんこんにちは。 今日は、Rails 3-MongodbLoggerの開発について説明します。 順番に始めましょう。
Railsアプリケーションは、デフォルトで、ログフォルダーにクエリログをスタックします。 ログ自体は非常に便利なものです。アプリケーションに送られるリクエストの確認、トレースエラーの確認などに役立ちます。 追加情報を追加できます。 ファイルログはシンプルで効果的ですが、一定の制限があります。多くのWebサーバーを使用する場合、それぞれに独自のログがあります。 簡単にアクセスできません。 RDBMSのエントリは、ログの集中化と簡単なアクセスの問題を解決しますが、他の問題がすぐに発生します。テーブルレイアウトはログ構造ほど柔軟ではありません。 録音が十分に速くない場合があります。 古いログのクリーニング-肩のタスク。 そして、MongoDBが助けになります。
MongoDB(http://www.mongodb.org/)は、テーブルレイアウトの説明を必要としない、オープンソースのドキュメント指向のデータベース管理システムです。 MongoDBがロギングに提供する利点は何ですか:
- 文書コレクションの柔軟なレイアウト。
- 非同期データ挿入。
- キャップ付きコレクション(セルフクリーニングコレクション-www.mongodb.org/display/DOCS/Capped+Collections );
- ファイルと比較して十分に速い記録。
- インデックス作成と検索。
- データ分析(MapReduce);
Rails 3でMongoDBをロガーとして使用するために、特別なgem MongodbLoggerを作成しました。 インストールは非常に簡単です。
Gemfileに追加
gem "mongodb_logger"
ApplicationControllerに追加
MongodbLoggerを含める::ベース
MongoDBの構成を作成します。 (wikiのgithub.com/le0pard/mongodb_logger/blob/master/README.mdなどの例-github.com/le0pard/mongodb_logger/wiki/Mongodblogger-settings )
Webに接続し(オプション)、config / routes.rbに追加します
「mongodb_logger / server」が必要 Mount MongodbLogger :: Server.new ,: at => "/ mongodb"
すべて準備完了です。 これで、RailsアプリケーションがリクエストをMongoDBに記録します。
MongodbLoggerのクリック可能なWebスクリーンショット:



Railsコンソールから検索することもできます。
これで、ログは指定されたサイズを超えず(古いレコードは自動的に消去されます)、エラーのみをフィルタリングします。
利便性は、クエリ内のパラメータで検索できるという事実にもあります。 たとえば、タイプparams [:order_id] = 12のデータはフォームから取得され、そのようなデータはログで検索できます。
collection.find({"controller" => "order"、 "action" => "show"、 "params.order_id" => order_id})
独自のGoogle AnalyticまたはAirbrakeをほぼ作成することもできますが、そのようなタスクはこのgemに直面しません:)拡張機能はこれを行うことができますが。
公式ウェブサイト: mongodb-logger.catware.org
ソース: github.com/le0pard/mongodb_logger
使用して参加:)