2016-03-28 20 views

cevap

6

Bunu yapmak için bazı güncel olmayan kitaplıklar ve karmaşık yollar buldum. Bu yüzden çok basit bir çözüm buldum. Aslında, Laravel Monolog Handler zaten Loggly Handler'ı kutudan çıkardı.

/services.php yapılandırma için yapılandırma bilgisi ekleyin: $ uygulaması gönderilmeden önce önyükleme/app.php içinde Monolog işleyicisi ekleyin Daha

'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); 
}); 

Voila! Loggly panosunda Monolog Günlüklerinizi alıyorsunuz.

+0

Teşekkürler! ÇALIŞIYOR bir cazibe gibi. – littlebridge

+1

Sadece burada bir şey, bu yapılandırmayı kullanarak yerel olarak hiçbir şey kaydetmeyeceksiniz. Her günlük Loggly'ye aktarılacaktır. – littlebridge

+0

evet, yerel günlükleri dahil etmek için cevabı düzenlemek için çekinmeyin –

2

Laravel'in varsayılan yerel günlük davranışını yönetmeyi ve aynı anda mladen-janjetovic's kodunu biraz değiştirerek Loggly'ye basmayı başarabiliyordum. Laravel üzerinde test 5,3

config/services.php:

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

önyükleme/app.php: Hala don' olarak

Hassan'ın katkısı genişletmek için
/* 
|-------------------------------------------------------------------------- 
| 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

(, cevap olarak gönderme Bir yorum göndermek için yeterli itibarınız var.

yerel olarak günlük günlükleri kullanmak için bir ihtiyaç varsa, kod aşağıdaki kullanabilirsiniz: Elbette

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

, logfile adı tamamen keyfidir. Bu örnekte, biçim gibi olacaktır:

laravel-YYYY-MM-DD.txt 

Düzenleme: Bu hat artık çalışmıyor 5.4'e yükseltme ile : Çözüm olarak

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

, el Yazar örneğini oluşturabilir, configureMonologUsing adresinden ulaşılabilen $ monolog enjekte etme:

$log = new Illuminate\Log\Writer($monolog);