我想從我的Laravel 5.1應用程序發送Monolog日誌到Loggly.com在線日誌管理服務。來自所有可能的環境,包括當地的發展。如何將Log日誌事件從Laravel發送到Loggly?
4
A
回答
6
我發現一些過時的庫和複雜的方法來做到這一點。所以我結束了非常簡單的解決方案。實際上,Laravel Monolog Handler已經有了Loggly Handler。
添加配置信息到config/services.php:
'loggly' => array(
'key' => 'ENTER_YOUR_LOGGLY_TOKEN_HERE',
'tag' => 'ProjectName_' .strtolower(env('APP_ENV')),
),
不是增加獨白處理程序引導/ app.php返回$應用之前:
/*
|--------------------------------------------------------------------------
| 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日誌。
2
我能夠管理Laravel的默認本地日誌行爲,並通過調整mladen-janjetovic's代碼來同時推送到Loggly。在Laravel測試的5.3
配置/ services.php:
'loggly' => [
'key' => 'ENTER_YOUR_LOGGLY_TOKEN_HERE',
'tag' => 'ProjectName_' .strtolower(env('APP_ENV')),
],
引導/ app.php:
/*
|--------------------------------------------------------------------------
| 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
要在哈桑的貢獻擴大(張貼作爲一個答案,因爲我仍不很沒有足夠的聲望發表評論)。
如果你有需要在本地使用日常日誌,你可以使用下面的代碼:
$logFile = 'laravel'.'.txt';
$log->useDailyFiles(storage_path().'/logs/'.$logFile);
當然,日誌文件名完全是任意的。在這個例子中,格式將是這樣:
laravel-YYYY-MM-DD.txt
編輯: 與升級到5.4這條線不工作了:
$log = $app->make(Illuminate\Log\Writer::class);
作爲一種變通方法,您可以手動創建作家例如,注入$ monolog可從configureMonologUsing
中關閉:
$log = new Illuminate\Log\Writer($monolog);
相關問題
- 1. Zapier從Azure中發送日誌文件Loggly
- 2. 默認發送到系統日誌時如何將日誌發送到Journalctl?
- 3. 將應用程序日誌轉發到Windows事件日誌
- 4. 如何從服務結構外部將日誌發送到ServiceEventSource?
- 5. 如何將日誌從tomcat docker容器發送到catalina.out?
- 6. 由Logstash解析的日誌事件以Loggly四次結束
- 7. 如何發送日誌到Graylog(Docker)?
- 8. 如何使用StringMatchFilter通過log4net中的消息內容將日誌記錄事件發送到不同日誌?
- 9. 從PhantomJS發送日誌到Graylog2
- 10. 如何將日誌從grails應用程序發送到單獨的文件
- 11. 發送heroku日誌到s3
- 12. 事件日誌在清除後停止發送EntryWritten事件
- 13. 如何將日誌寫入golang中的.log文件?
- 14. 如何從非ATG java代碼發送日誌條目到ATG日誌
- 15. 將事務日誌刷新到日誌文件中的條件
- 16. 如何將鼠標事件發送到發送前的ajaxSetup?
- 17. Spring Boot:將控制檯日誌關閉到文件'/var/log/app.log'
- 18. HTTP事件收集器:如何使用curl從命令行將日誌發送到Splunk Cloud?
- 19. 將日誌轉發到CloudWatch日誌
- 20. 如何將數據從事件監聽器發送到paintComponent
- 21. 如何在JNI中將事件/信號從C發送到Java
- 22. ASP NET如何將事件從ASPX發送到ASCX
- 23. 將日誌從REST服務發送到HTML頁面
- 24. Kafka將單個日誌事件行聚合到組合日誌事件中
- 25. 如何測試郵件已發送到系統日誌
- 26. Laravel廣播不發送事件推送
- 27. 將日誌從文件轉發到日記
- 28. 將put的輸出同時發送到日誌文件和stdout?
- 29. 將特定的INFO日誌行發送到不同的文件
- 30. 將數據發送到日誌文件 - shell腳本
謝謝!奇蹟般有效。 – littlebridge
這裏只有一件事,你不會使用這個配置在本地記錄任何東西。每個日誌都會被推送到Loggly。 – littlebridge
是的,隨意編輯答案,包括本地日誌 –