首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将日志事件从Laravel发送到Loggly?

如何将日志事件从Laravel发送到Loggly?
EN

Stack Overflow用户
提问于 2016-03-28 09:59:29
回答 5查看 2.9K关注 0票数 5

我想从我的Laravel5.1应用程序向Loggly.com在线日志管理服务发送Monolog日志。所有可能的环境,包括地方发展。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2016-03-28 09:59:29

我发现了一些过时的语言和复杂的方法来做到这一点。所以我得到了非常简单的解决方案。实际上,已经有Loggly了。

将配置信息添加到config/services.php:

代码语言:javascript
复制
'loggly' => array(
    'key'   => 'ENTER_YOUR_LOGGLY_TOKEN_HERE',
    'tag'   => 'ProjectName_' .strtolower(env('APP_ENV')),
),

而不是在返回$app之前,在引导/app.php中添加Monolog处理程序:

代码语言:javascript
复制
/*
|--------------------------------------------------------------------------
| 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仪表板中获取您的单曲日志。

更新:(谢谢@thitami)

基于laravel.com/docs/5.6/升级

configureMonologUsing方法如果您正在使用configureMonologUsing方法自定义应用程序的Monolog实例,那么现在应该创建一个自定义日志通道。有关如何创建自定义通道的更多信息,请查看全测井文件

票数 10
EN

Stack Overflow用户

发布于 2017-01-25 09:34:25

我能够管理Laravel的默认本地日志行为,并通过稍微修改姆拉丹-扬杰托维奇代码,在同一时间推到Loggly。在Laravel 5.3上测试

config/services.php:

代码语言:javascript
复制
'loggly' => [
    'key'   => 'ENTER_YOUR_LOGGLY_TOKEN_HERE',
    'tag'   => 'ProjectName_' .strtolower(env('APP_ENV')),
],

引导程序/app.php:

代码语言:javascript
复制
/*
|--------------------------------------------------------------------------
| 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'));
    }
});
票数 2
EN

Stack Overflow用户

发布于 2018-03-20 15:38:54

或者,您可以使用单叶栅来完成此操作。

https://github.com/theorchard/monolog-cascade是一个Monolog扩展,允许您从单个配置文件中设置和配置多个记录器和处理程序。

下面是使用Loggly的配置文件示例。这将记录到您的stdOut和Loggly:

代码语言:javascript
复制
---
handlers:
    console:
        class: Monolog\Handler\StreamHandler
        level: DEBUG
        stream: php://stdout
    error_loggly_handler:
        class: Monolog\Handler\LogglyHandler
        level: ERROR
        token: xxxx-xxxx-xxxxxxxx
        tags: [cascade, waterfall]
loggers:
    my_logger:
        handlers: [console, error_loggly_handler]

如果您感兴趣,这里有一篇关于级联=> https://medium.com/orchard-technology/enhancing-monolog-699efff1051d的博客文章

免责声明:我是单叶栅的主要贡献者。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36259943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档