All Projects → Jiannei → laravel-logger

Jiannei / laravel-logger

Licence: other
📝 Laravel 日志的扩展,更规范,更快速,更有效。

Programming Languages

PHP
23972 projects - #3 most used programming language

Projects that are alternatives of or similar to laravel-logger

Fiber Job System
Multi-Threaded Job System using Fibers
Stars: ✭ 121 (+476.19%)
Mutual labels:  job-queue
arena
An interactive UI dashboard for Bee, Bull and BullMQ packages
Stars: ✭ 755 (+3495.24%)
Mutual labels:  job-queue
agendash-v2
A modern, secure, and reliable dashboard for Agenda with search and pagination capabilities written in vue.js
Stars: ✭ 27 (+28.57%)
Mutual labels:  job-queue
Enqueue Dev
Message Queue, Job Queue, Broadcasting, WebSockets packages for PHP, Symfony, Laravel, Magento. DEVELOPMENT REPOSITORY - provided by Forma-Pro
Stars: ✭ 1,977 (+9314.29%)
Mutual labels:  job-queue
Enqueue Bundle
[READ-ONLY] Message queue bundle for Symfony. RabbitMQ, Amazon SQS, Redis, Service bus, Async events, RPC over MQ and a lot more
Stars: ✭ 233 (+1009.52%)
Mutual labels:  job-queue
mango
Use mongo-go-driver like mgo
Stars: ✭ 37 (+76.19%)
Mutual labels:  mongodb-driver
Kue
Kue is a priority job queue backed by redis, built for node.js.
Stars: ✭ 9,316 (+44261.9%)
Mutual labels:  job-queue
java-spring-boot-mongodb-starter
MongoDB Blog Post: REST APIs with Java, Spring Boot and MongoDB
Stars: ✭ 57 (+171.43%)
Mutual labels:  mongodb-driver
Laravel Log Viewer
🐪 Laravel log viewer
Stars: ✭ 2,726 (+12880.95%)
Mutual labels:  laravel-log-viewer
Lumpik
[experimental] Lumpik is a job queue system for general purpose.
Stars: ✭ 21 (+0%)
Mutual labels:  job-queue
Minion
🐙 Perl job queue
Stars: ✭ 177 (+742.86%)
Mutual labels:  job-queue
Redis Smq
A simple high-performance Redis message queue for Node.js.
Stars: ✭ 230 (+995.24%)
Mutual labels:  job-queue
ArchitectNow.ApiStarter
Sample ASP.NET Core 2 API Setup used by ArchitectNow for corresponding workshop presentations
Stars: ✭ 35 (+66.67%)
Mutual labels:  mongodb-driver
Bull
Premium Queue package for handling distributed jobs and messages in NodeJS.
Stars: ✭ 11,748 (+55842.86%)
Mutual labels:  job-queue
MongoDBLink
MongoDB driver for Mathematica
Stars: ✭ 18 (-14.29%)
Mutual labels:  mongodb-driver
Go Quartz
Simple, zero-dependency scheduling library for Go
Stars: ✭ 118 (+461.9%)
Mutual labels:  job-queue
mysqly
Full-featured opensource small-overhead PHP data framework for Mysql built for fast and efficient development
Stars: ✭ 18 (-14.29%)
Mutual labels:  job-queue
orkid-node
Reliable and modern Redis Streams based task queue for Node.js 🤖
Stars: ✭ 61 (+190.48%)
Mutual labels:  job-queue
online-training
Online Training website using ASP.Net Core 2.0 & Angular 4
Stars: ✭ 26 (+23.81%)
Mutual labels:  mongodb-driver
laravel-epilog
🐈 IP, referer, user ID and more in Laravel logs
Stars: ✭ 25 (+19.05%)
Mutual labels:  laravel-log-viewer

laravel-logger

Test StyleCI Latest Stable Version Total Downloads Monthly Downloads Latest Unstable Version License

社区讨论文章

介绍

laravel-logger 主要用来扩展项目中的日志记录,使调试更加方便。

概览

  • 提供 logger_async 辅助函数,通过异步 Job 方式来记录日志;
  • 增加 RequestLog 中间件来记录 api 的请求和响应;对于单个请求关联 UNIQUE_ID,根据UNIQUE_ID可以跟踪请求执行过程
  • 适配 MongoDB 驱动,支持记录日志到 MongoDB;collection 支持按天、按月和按年拆分;(依赖 mongodb/mongodbjenssegers/mongodb)
  • 提供 LOG_QUERYLOG_REQUEST 配置参数来开启关闭 sql 日志和 request 日志

安装

$ composer require jiannei/laravel-logger -vvv

配置

复制配置项到 config/logging.php中,参考:https://github.com/Jiannei/lumen-api-starter/blob/master/config/logging.php

Laravel

  • 添加中间件 RequestLog 来记录 API 请求日志

app/Http/Kernel.php 的 $middlewareGroups 中添加

protected $middlewareGroups = [
    'api' => [
        \Jiannei\Logger\Laravel\Http\Middleware\RequestLog::class,// 加在这个地方
    ],
];

Lumen

  • 加载配置
// bootstrap/app.php
$app->configure('logging');
  • 添加中间件
$app->middleware([
    \Jiannei\Logger\Laravel\Http\Middleware\RequestLog::class,
]);
  • 注册服务容器
$app->register(\Jiannei\Logger\Laravel\Providers\ServiceProvider::class);

.env 中配置启用

LOG_CHANNEL=mongo
LOG_SLACK_WEBHOOK_URL=
LOG_QUERY=true
LOG_REQUEST=true

# 如果使用的是 mongo channel 需要配置
LOG_MONGODB_SEPARATE=daily
LOG_MONGODB_LEVEL=debug
LOG_MONGODB_HOST=127.0.0.1
LOG_MONGODB_PORT=27017
LOG_MONGODB_DATABASE=logs
LOG_MONGODB_USERNAME=
LOG_MONGODB_PASSWORD=
LOG_MONGODB_AUTHENTICATION_DATABASE=admin

其他

如果需要记录日志到 MongoDB,需要先安装并配置laravel-mongodb

如何使用

可以参考 lumen-api-starter 中的实际使用示例。

使用

  • app/Repositories/Enums/LogEnum.php 中定义记录日志时的 message
  • 通过 logger_async 方法记录日志
logger_async(LogEnum::SYSTEM_SQL, $arrayData);
  • 如果队列任务异步执行,则需要开启队列消费 php artisan queue:work

  • 记录到文件中的日志内容

[2021-01-18 12:03:36] local.DEBUG: System sql {"database":"lumen-api","duration":"11.08ms","sql":"select `roles`.*, `model_has_roles`.`model_id` as `pivot_model_id`, `model_has_roles`.`role_id` as `pivot_role_id`, `model_has_roles`.`model_type` as `pivot_model_type` from `roles` inner join `model_has_roles` on `roles`.`id` = `model_has_roles`.`role_id` where `model_has_roles`.`model_id` = '11' and `model_has_roles`.`model_type` = 'App\\\\Repositories\\\\Models\\\\User'"} {"url":"/users","ip":"172.22.0.1","http_method":"get","server":"lumen-api.test","referrer":null,"unique_id":"43f54ea9-4ad4-47cf-b9da-1d3aa150ff61"}
[2021-01-18 12:03:36] local.DEBUG: System request {"request":[],"response":{"status":"success","code":200,"message":"操作成功","data":{"data":[{"id":1,"nickname":"Evert Stracke DVM","email":"[email protected]"},{"id":2,"nickname":"Milton Toy","email":"[email protected]"},{"id":3,"nickname":"Mrs. Alyce O'Hara","email":"[email protected]"},{"id":4,"nickname":"Prof. Evalyn Windler I","email":"[email protected]"},{"id":5,"nickname":"Brant Skiles","email":"[email protected]"},{"id":6,"nickname":"Sage Rodriguez I","email":"[email protected]"},{"id":7,"nickname":"Ms. Angelica Wiegand DVM","email":"[email protected]"},{"id":8,"nickname":"Newton Zieme","email":"[email protected]"},{"id":9,"nickname":"Natalia Ruecker","email":"[email protected]"},{"id":10,"nickname":"Hallie Parisian","email":"[email protected]"},{"id":11,"nickname":"Jiannei","email":"[email protected]"}],"meta":{"pagination":{"total":11,"count":11,"per_page":15,"current_page":1,"total_pages":1,"links":[]}}},"error":[]},"start":1610942614.450748,"end":1610942615.785696,"duration":"1.33s"} {"url":"/users","ip":"172.22.0.1","http_method":"GET","server":"lumen-api.test","referrer":null,"unique_id":"43f54ea9-4ad4-47cf-b9da-1d3aa150ff61"}
  • 记录到 Mongodb 的日志内容
/* 1 */
{
    "_id" : ObjectId("60050999ee7d025d4c62c8c2"),
    "message" : "System sql",
    "context" : {
        "database" : "lumen-api",
        "duration" : "54.19ms",
        "sql" : "select count(*) as aggregate from `users`"
    },
    "level" : 100,
    "level_name" : "DEBUG",
    "channel" : "mongo",
    "datetime" : ISODate("2021-01-18T12:07:53.410+08:00"),
    "extra" : {
        "url" : "/users",
        "ip" : "172.22.0.1",
        "http_method" : "get",
        "server" : "lumen-api.test",
        "referrer" : null,
        "unique_id" : "0cda1927-bf14-4acf-88e8-1d9ed67170b5"
    }
}

/* 2 */
{
    "_id" : ObjectId("60050999ee7d025d4c62c8c3"),
    "message" : "System sql",
    "context" : {
        "database" : "lumen-api",
        "duration" : "2.42ms",
        "sql" : "select * from `users` limit 15 offset 0"
    },
    "level" : 100,
    "level_name" : "DEBUG",
    "channel" : "mongo",
    "datetime" : ISODate("2021-01-18T12:07:53.500+08:00"),
    "extra" : {
        "url" : "/users",
        "ip" : "172.22.0.1",
        "http_method" : "get",
        "server" : "lumen-api.test",
        "referrer" : null,
        "unique_id" : "0cda1927-bf14-4acf-88e8-1d9ed67170b5"
    }
}

特别说明

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].