作業ノート

様々なまとめ、雑感など

Silexを試してみた(5) - Logging

SilexのMonologServiceProviderを使ってログを出力する。

Monologのインストール

slim版にMonologは含まれていないので、composerを使ってインストールする。

composer.jsonを

{
    "require": {
        "silex/silex": "~1.1",
        "twig/twig": ">=1.8,<2.0-dev",
        "symfony/twig-bridge": "~2.3",
        "monolog/monolog": ">=1.0.0"
    }
}

のように編集して、composer.pharを実行する。

$ ./composer.phar update

Service Providerの登録

Silex\Applicationregisterメソッドで登録する。

$app->register(new Silex\Provider\MonologServiceProvider(), array(
    'monolog.logfile' => __DIR__.'/../var/log/application.log',
    'monolog.level'   => 'DEBUG',
));

monolog.logfileは、ログの出力先ファイル。 monolog.levelは、出力するログのレベル。

ログ出力

$app['monolog']にService Providerが登録されており、ログレベルによって異なるメソッドを使用する。

$app->get('/', function(Application $app) {
    $app['monolog']->addDebug('log debug');
    $app['monolog']->addInfo('log info');
    $app['monolog']->addWarning('log warning');
    $app['monolog']->addError('log warning');

    return 'index';
});

参考

関連