`morgan`モジュールはエクスプレスアプリと何の関係がありますか?


84

エクスプレスチュートリアルでは、作者はを使用していましたnpm module morgan。モーガンはExpressアプリで何ができますか?誰かが私がこれを理解するのを手伝ってもらえますか?

グーグルでこれを手に入れましたが、ここでは何も理解していません:

var express = require('express')
var morgan  = require('morgan')

var app = express()
app.use(morgan('combined'))
morgan('combined')

morgan(':remote-addr :method :url')

morgan(function (tokens, req, res) {
  return req.method + ' ' + req.url
})

1
morganロガーnpmjs.org/package/morganです。疑わしい場合は、npmサイトにアクセスしてください。
nowk 2014

16
質問は単なる疑いではなく、正しく理解するための意味のある例を探しています。
3gwebtrain 2014

回答:


109

Morganは、リクエストの詳細をログに記録するために使用されます。ただし、質問のスニペットは、実際には上から下への単一の一貫したスニペットではないため、意味がありません。これは、モーガンに渡すことができるさまざまなタイプのオプションの一連の例です。実際のプログラムでは、そのうちの1つだけが必要になります。例えば:

var express = require('express')
var morgan  = require('morgan')

var app = express()
//This tells express to log via morgan
//and morgan to log in the "combined" pre-defined format
app.use(morgan('combined'))
//That's it. Everything in your snippet after this are just
//other variations your might want to use

5
申し訳ありませんが、「組み合わせ」がわかりませんでした。説明してもらえますか?
Kannan T 2017

15
Morganは、よく知られている名前/構造を持つ、いくつかの事前定義されたログ形式をサポートしています。結合、共通、開発、短い、小さい。その文字列は、どのログ形式を使用するかをモーガンに伝えています。npmjs.com/package/morgan#predefined-formats
Peter Lyons

3
@RotimiBestデフォルトでは、ログは標準出力(プログラムの通常のコンソール出力)に書き込みます。ファイルシステム上の特定のファイルに書き込む場合は、構成オプションを渡すこともできます。
ピーター・リヨン

25

Morganは基本的にロガーであり、要求が行われると、ログを自動的に生成します。


2
ばかげた質問かもしれませんが、ログはファイルまたはstd.outのどこに保存されていますか?
ローティミ-最高の

2
@RotimiBestモジュールは、デフォルトでstd out(コンソール出力)に書き込みます。ただし、これらのログをファイルシステム上のカスタムファイルに書き込むように簡単に構成できます。
KrishnaGaneriwal19年

5

Morgan: Node.js用のもう1つのHTTPリクエストロガーミドルウェアです。これにより、アプリケーションへのリクエストのログ記録プロセスが簡素化されます。Morganは、リクエストログなどのログをサーバーから収集するヘルパーと考えることができます。共通のログを手動で作成する必要がないため、開発者の時間を節約できます。標準化され、リクエストログが自動的に作成されます。

モーガンはスタンドアロンで動作できますが、通常はウィンストンと組み合わせて使用​​されます。Winstonは、ログを外部の場所に転送したり、問題を分析するときにクエリを実行したりすることができます。


モーガンの使用例を教えてください、私はあなたを取得していません。
RohanDevaki20年

3

Morganは、Node.jsで人気のあるHTTPリクエストミドルウェアロガーであり、基本的にロガーとして使用されます。node jsのwinstonパッケージと一緒に使用して、HTTPリクエストデータログを他の情報と統合できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.