MongodbLogger-Rails 3アプリケーションのログをMongoDBにスタックする

画像

みなさんこんにちは。 今日は、Rails 3-MongodbLoggerの開発について説明します。 順番に始めましょう。

Railsアプリケーションは、デフォルトで、ログフォルダーにクエリログをスタックします。 ログ自体は非常に便利なものです。アプリケーションに送られるリクエストの確認、トレースエラーの確認などに役立ちます。 追加情報を追加できます。 ファイルログはシンプルで効果的ですが、一定の制限があります。多くのWebサーバーを使用する場合、それぞれに独自のログがあります。 簡単にアクセスできません。 RDBMSのエントリは、ログの集中化と簡単なアクセスの問題を解決しますが、他の問題がすぐに発生します。テーブルレイアウトはログ構造ほど柔軟ではありません。 録音が十分に速くない場合があります。 古いログのクリーニング-肩のタスク。 そして、MongoDBが助けになります。



MongoDB(http://www.mongodb.org/)は、テーブルレイアウトの説明を必要としない、オープンソースのドキュメント指向のデータベース管理システムです。 MongoDBがロギングに提供する利点は何ですか:



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

使用して参加:)

Source: https://habr.com/ru/post/J134327/


All Articles