3

Sparkのドキュメント全体に目を通しましたが、ログ記録についてはまったく見当たりません。Spark がJetty Web サーバーの組み込みバージョンを使用していることは知っていますが、実際に Spark フレームワーク コードにアクセスして変更しない限り、Jetty ログを有効にする方法はないようです。

サーバーへのすべての HTTP リクエストをCommon Log Formatに記録することを望んでいました。現在、サーバーを起動すると、何回リクエストを投げても、これに続いて無音が表示されます。

[Thread-1] INFO spark.webserver.SparkServer - == Spark has ignited ...
[Thread-1] INFO spark.webserver.SparkServer - >> Listening on 0.0.0.0:4567
[Thread-1] INFO org.eclipse.jetty.server.Server - jetty-9.0.2.v20130417
[Thread-1] INFO org.eclipse.jetty.server.ServerConnector - Started ServerConnector@46f24fce{HTTP/1.1}{0.0.0.0:4567}

現時点での最善のアイデアは、独自のログ システムをbeforeフィルターに組み込むことです。例えば:

before((req, res) -> {
    System.out.println("Request from " + req.ip() + " received - " + req.userAgent());
});

しかし、この機能このフレームワークに組み込まれているようですが、私はそれを見ていません。比較的人気のある Web フレームワーク ( Githubで 3,000 個以上のスターを獲得) には、Web サーバー用のロギングが組み込まれていると思いますよね?

4

2 に答える 2

0

Spark が何かはわかりませんが、Jetty が古すぎない場合は、Simple SLF4J などの slf4j バインディング (および、Simple を使用していない場合はログの実装) を提供できるはずです。( http://www.slf4j.org/manual.htmlを参照)

シンプルな SLF4J バインディングを使用する場合は、Javadoc に記載されているように、JVM システム プロパティを使用して (ログ レベルまたはログ ファイルを含めて) 構成できます

于 2015-10-05T20:28:52.753 に答える