laravel 10 mongodb 保存 日志 logs

本文档介绍了如何配置laravel 10应用程序,使其使用mongodb存储日志。首先,你需要更新`config/logging.php`,然后修改`.env`文件。接着,创建`app/Logging/MongoDBLogger`类并实现日志记录功能。最后,在控制器中通过`Log::error('test')`进行测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

修改 config/logging.php

增加内容:

'mongodb' => [
        'driver'     => 'custom',
        'via'        => App\Logging\MongoDBLogger::class,
        'host'       => env('MONGO_DB_HOST'),
        'port'       => env('MONGO_DB_PORT'),
        'database'   => env('MONGO_APP_ENV'),
        'collection' => 'logs',
        'auth'=>[
            'username'   => 'admin',
            'password'   => '1qw23er4',
        ]
],

修改.env

增加内容:

MONGO_APP_ENV=dev  #根据不同环境配置 开发dev  测试test  正式base

MONGO_DB_CONNECTION=mongodb

MONGO_DB_HOST=127.0.0.1

MONGO_DB_PORT=27017

MONGO_DB_DATABASE=logs

MONGO_DB_USERNAME=root

MONGO_DB_PASSWORD=1qw23er4

创建文件 app/Logging/MongoDBLogger

添加内容 

<?php

namespace App\Logging;

use Monolog\Logger;
use Monolog\Handler\MongoDBHandler;


class MongoDBLogger
{
    /**
     * Create a custom Monolog instance.
     *
     * @param  array  $config
     * @return \Monolog\Logger
     */
    public function __invoke(array $config)
    {

        $log        = new \Monolog\Logger('application');
        $mongo_host = 'mongodb://'.$config['host'].':'.$config['port'];
        $client     = new \MongoDB\Driver\Manager($mongo_host,$config['auth']);
        $mongodb    = new \Monolog\Handler\MongoDBHandler($client, $config['database'], $config['collection']);
        $log->pushHandler($mongodb);
        return $log;
    }
}

Controller中测试 

use Illuminate\Support\Facades\Log;

Log::error('test');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值