修改 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');