Sử dụng MongoDB để lưu Log cho Laravel 5

| Tin mới | Tag:
Rate this post

Để lưu log cho Laravel trên MongoDB thì việc đầu tiên bạn phải cài đặt mongoDB đã. Các bước làm rất đơn giản.

Ở đây mình sử dụng Laravel 5.4, các phiên bản khác cũng tương tự.

Bước 1. Bạn cần tạo 1 file cấu hình thông tin kết nối đến MongoDB.

Tạo file: /config/mongolog.php với nội dung như sau:

PHP

<?php

use MonologLogger;

return array(
‘server’ => “mongodb://localhost:27017”,
‘database’ => ‘theodoichidao’,
‘collection’ => ‘logs’,
‘log_level’ => Logger::DEBUG,
‘time_zone’ => ‘UTC’,
‘datetime_format’ => ‘Y-m-d H:i:s’,
);

123456789101112

<?php use MonologLogger; return array(    ‘server’          => “mongodb://localhost:27017”,    ‘database’        => ‘theodoichidao’,    ‘collection’      => ‘logs’,    ‘log_level’       => Logger::DEBUG,    ‘time_zone’       => ‘UTC’,    ‘datetime_format’ => ‘Y-m-d H:i:s’,);

Bước 2: Tìm đến file: bootstrap/app.php và thêm nội dung như dưới đây vào trước dòng

return $app;

1

return $app;

PHP

$app->configureMonologUsing(function ($monolog) {

$mongoHandler = new MonologHandlerMongoDBHandler(
new MongoClient(Config::get(‘mongolog.server’)),
Config::get(‘mongolog.database’),
Config::get(‘mongolog.collection’)
);

Session::put(‘request_id’, uniqid());

$monolog->pushHandler($mongoHandler);
$monolog->pushProcessor(new MonologProcessorWebProcessor($_SERVER));
$monolog->pushProcessor(function ($record) {
$record[‘extra’][‘session_id’] = Cookie::get(Config::get(‘session.cookie’));
$record[‘extra’][‘request_id’] = Session::get(‘request_id’);
return $record;
});
});

123456789101112131415161718

$app->configureMonologUsing(function ($monolog) {     $mongoHandler = new MonologHandlerMongoDBHandler(        new MongoClient(Config::get(‘mongolog.server’)),        Config::get(‘mongolog.database’),        Config::get(‘mongolog.collection’)    );     Session::put(‘request_id’, uniqid());     $monolog->pushHandler($mongoHandler);    $monolog->pushProcessor(new MonologProcessorWebProcessor($_SERVER));    $monolog->pushProcessor(function ($record) {        $record[‘extra’][‘session_id’] = Cookie::get(Config::get(‘session.cookie’));        $record[‘extra’][‘request_id’] = Session::get(‘request_id’);        return $record;    });});

Bước 3: Cách ghi log. Bạn có thể sử dụng tất cả các hàm log của Laravel để ghi log

PHP

Log::emergency($message);
Log::alert($message);
Log::critical($message);
Log::error($message);
Log::warning($message);
Log::notice($message);
Log::info($message);
Log::debug($message);

12345678

Log::emergency($message);Log::alert($message);Log::critical($message);Log::error($message);Log::warning($message);Log::notice($message);Log::info($message);Log::debug($message);

Nếu bạn muốn thêm Contextual Information cũng rất đơn giản, bạn truyền thêm tham số là 1 mảng hoặc object ở sau tham số message như sau

PHP

Log::info(‘User failed to login.’, [‘id’ => $user->id]);

1

Log::info(‘User failed to login.’, [‘id’ => $user->id]);

Đây là thành quả sau khi thực hiện các bước trên:

ghi log mongo

Bình luận
0

Bình luận