2016-03-28 6 views

答えて

6

古いライブラリと複雑な方法があります。だから私は非常に簡単な解決策で終わった。実際、Laravel Monolog HandlerにはすでにLoggly Handlerが用意されています。

/services.php設定への設定情報を追加します:$アプリが返される前に、ブートストラップ/ app.phpでモノローグハンドラを追加ザン

'loggly' => array(
    'key' => 'ENTER_YOUR_LOGGLY_TOKEN_HERE', 
    'tag' => 'ProjectName_' .strtolower(env('APP_ENV')), 
), 

/* 
|-------------------------------------------------------------------------- 
| Setup Loggly Handler 
|-------------------------------------------------------------------------- 
*/ 
$app->configureMonologUsing(function($monolog) { 
    $handler = new  \Monolog\Handler\LogglyHandler(config('services.loggly.key'),\Monolog\Logger::DEBUG); 
    $handler->setTag(config('services.loggly.tag')); 

    $monolog->pushHandler($handler); 
}); 

出来上がりを! LogglyダッシュボードでMonolog Logsを取得しています。

+0

ありがとう!魅力のように動作します。 – littlebridge

+1

ここでのみ、この設定を使用してローカルで何もログに記録しません。すべてのログはLogglyにプッシュされます。 – littlebridge

+0

はい、回答を編集してローカルログを含めることができます –

2

Laravelのデフォルトのローカルログの動作を管理し、同じ時刻にmladen-janjetovic'sコードを微調整してLogglyにプッシュすることができました。 「私はまだドンとして、答えとして投稿(ハッサンの貢献に展開する

/* 
|-------------------------------------------------------------------------- 
| Push to Loggly, and save locally. 
|-------------------------------------------------------------------------- 
*/ 
$app->configureMonologUsing(function($monolog) use ($app) { 
    $log = $app->make(Illuminate\Log\Writer::class); 

    $logglyHandler = new \Monolog\Handler\LogglyHandler(config('services.loggly.key')); 
    $logglyHandler->setTag(config('services.loggly.tag')); 

    if (config('app.env') == 'production') 
    { 
     // Push to Loggly and save local if in production 
     $log->getMonolog()->pushHandler($logglyHandler); 
     $log->useFiles(storage_path('/logs/laravel.log')); 
    } 
    else 
    { 
     // Otherwise, save only locally 
     $log->useFiles(storage_path('/logs/laravel.log')); 
    } 
}); 
0

'loggly' => [ 
    'key' => 'ENTER_YOUR_LOGGLY_TOKEN_HERE', 
    'tag' => 'ProjectName_' .strtolower(env('APP_ENV')), 
], 

ブートストラップ/ app.php:Laravel 5.3

のconfig/services.php上でテストコメントを投稿するには十分な評判がある)。ログファイル名は完全に任意で、もちろん

$logFile = 'laravel'.'.txt'; 
$log->useDailyFiles(storage_path().'/logs/'.$logFile); 

:あなたがローカルで毎日のログを使用する必要がある場合は

すると、次のコードを使用することができます。 5.4へのアップグレードで、このラインはもう動作しません :

laravel-YYYY-MM-DD.txt 

編集:この例では、フォーマットは、次のようなことになる回避策として

$log = $app->make(Illuminate\Log\Writer::class); 

を、手動でライターのインスタンスを作成することができ、 configureMonologUsingから入手可能な$ monologを閉鎖する:

$log = new Illuminate\Log\Writer($monolog); 
関連する問題