3

Silex 1.1 と Monolog 1.0.0 を使用しています。私のコードと私の問題:

$app->register(new Silex\Provider\MonologServiceProvider(), array(
  'monolog.name' => 'myname',
  'monolog.logfile' => ROOT . '/logs/log.txt',
  'monolog.level'   => Monolog\Logger::INFO
));

. . .
$app['monolog']->addInfo('xxx');

すべて正常に動作しますが、次のようなデフォルト メッセージが表示されます。

[2013-12-13 00:20:56] myname.INFO: Matched route "GET_api_v1_predictions" (parameters: "_controller": "predictions.controller:index", "_route": "GET_api_v1_predictions") [] []
[2013-12-13 00:20:56] myname.INFO: > GET /api/v1/predictions [] []

どうすればそれらを無効にできますか? (ロギング レベルを WARNING に変更して addWarning を使用すると、メッセージだけが表示されますが、INFO レベルを使用したいと考えています)。

4

2 に答える 2

6

他のプロセスで使用されていないアプリケーション用のロガーを引き続き作成できます。

use Monolog\Logger;
use Monolog\Handler\StreamHandler;

// initialize the logger
$app['mylog'] = $app->share(function($app) {
   return new Logger('mylog');
});
$app['mylog']->pushHandler(new StreamHandler('/logfile/mylog.log', Logger::INFO));
$app['mylog']->addInfo('Private Log initialized');
于 2013-12-13T11:18:32.260 に答える
1

現在、それらを無効にする方法はありません。ログ コマンドは無条件に登録されます。

短期的な解決策は、MonologServiceProvider を独自のアプリにコピーし、必要に応じてログ コマンドを変更することです。

長期的な解決策は、silex リポジトリをフォークし、MonologServiceProvider を変更してこれらのコマンドを無効にする方法を提供し、プル リクエストを作成して、誰もが作業を楽しめるようにすることです。

于 2013-12-13T09:47:59.617 に答える