PHPackages                             zdz/laravel-middleware-log - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Logging &amp; Monitoring](/categories/logging)
4. /
5. zdz/laravel-middleware-log

ActiveLibrary[Logging &amp; Monitoring](/categories/logging)

zdz/laravel-middleware-log
==========================

laravel middleware for log auto record

2.0.3(5y ago)0525MITPHPPHP ^7.2

Since Jun 30Pushed 5y ago1 watchersCompare

[ Source](https://github.com/zdz1715/laravel-middleware-log)[ Packagist](https://packagist.org/packages/zdz/laravel-middleware-log)[ RSS](/packages/zdz-laravel-middleware-log/feed)WikiDiscussions master Synced 2d ago

READMEChangelog (5)Dependencies (6)Versions (6)Used By (0)

laravel-middleware-log
======================

[](#laravel-middleware-log)

laravel日志中间件

Requirements
------------

[](#requirements)

- php: ^7.2
- laravel: ^6.0

Installation
------------

[](#installation)

```
composer require zdz/laravel-middleware-log
```

Usage
-----

[](#usage)

### 注册中间件(选择合适的)

[](#注册中间件选择合适的)

- 全局注册

在 `app/Http/Kernel.php` 中的 `$middleware` 属性中列出这个中间件

```
// 在 App\Http\Kernel 类中...

protected $middleware = [
    \App\Http\Middleware\TrustProxies::class,
    \App\Http\Middleware\CheckForMaintenanceMode::class,
    \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
    \App\Http\Middleware\TrimStrings::class,
    \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
    // 日志中间件
    \zdz\LaravelMiddlewareLog\WriteLogMiddleware::class,
];
```

- 中间件组 (推荐,只记录api日志)

```
// 在 App\Http\Kernel 类中...

protected $middlewareGroups = [
        'web' => [
            \App\Http\Middleware\EncryptCookies::class,
            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
            \Illuminate\Session\Middleware\StartSession::class,
            // \Illuminate\Session\Middleware\AuthenticateSession::class,
            \Illuminate\View\Middleware\ShareErrorsFromSession::class,
            \App\Http\Middleware\VerifyCsrfToken::class,
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
        ],

        'api' => [
            'throttle:60,1',
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
            // 日志中间件
            \zdz\LaravelMiddlewareLog\WriteLogMiddleware::class,
        ],
    ];
```

- 单独路由

```
// 在 App\Http\Kernel 类中...
protected $routeMiddleware = [
    'auto_log' => \zdz\LaravelMiddlewareLog\WriteLogMiddleware::class,
];
```

```
Route::get('admin/profile', function () {
    //
})->middleware('auto_log');
```

### 监听sql语句

[](#监听sql语句)

```
// 在 App\Providers\EventServiceProvider 类中...
protected $listen = [
    Registered::class => [
        SendEmailVerificationNotification::class,
    ],
   // 添加sql监听
    \Illuminate\Database\Events\QueryExecuted::class => [
        \zdz\LaravelMiddlewareLog\SqlLogListen::class
    ]
];
```

Log结构
-----

[](#log结构)

> 默认请求一次，记录一条日志，日志为json字符串，结构如下：

字段描述message默认为auto-log，修改config里的log\_message自定义levellaravel日志级别level\_namelaravel日志级别名称channeldatetime记录时间extracontext日志内容，修改config里的log\_fields自定义默认记录字段|- exec\_exception程序运行抛出的异常（内置，不可修改）|- exec\_ms执行时间，依赖于常量`LARAVEL_START`, 没有则可以在`public/index.php`添加 `define('LARAVEL_START', microtime(true));`（内置，不可修改）|- *time*内置记录时间，格式：Y-m-d H:i:s|- full\_url完整路由|- path\_info请求路由|- client\_ip客户端ip|- request\_method请求方法|- request\_header请求header|- request\_params请求参数|- response\_header响应header|- response\_body响应结果|- db\_sqlsql语句数组(需监听sql语句)|-- connection\_name连接名称|-- sqlsql语句|-- bindings绑定参数|-- mssql执行时间Configuration（可选，自定义配置）
-----------------------

[](#configuration可选自定义配置)

使用以下命令发布配置，发布之后会生成`config/log-middleware.php`，在此文件里修改配置

```
php artisan vendor:publish --provider="zdz\LaravelMiddlewareLog\LogServiceProvider"
```

`config/log-middleware.php`

字段类型描述示例exclude\_routearray忽略的路由,在此数组中则不会记录日志,支持通配符`*`\['api/log/test', 'web/\*'\]exclude\_route\_fieldsarray忽略的路由字段，记录路由日志，但不记录字段里的值,支持通配符`*`\['api/log/\*' =&gt; \[ 'response\_body' \] \]exclude\_exceptionarray忽略的异常类，如果是此异常则不记录到exec\_exception默认忽略 \[Illuminate\\Validation\\ValidationException::class,\]exclude\_exception\_fieldsarray用于抛出异常时，字段内容置为空默认： \[ 'response\_body' \]log\_fieldsarray记录的数据，可自定义，形式：
key =&gt; \[ 类（request、response）, 方法， 属性 \]有以下三种情况：
 1. 'full\_url' =&gt; \[ 'request', 'fullUrl' \] = $request-&gt;fullUrl()
2. 'response\_header' =&gt; \[ 'response', 'all', 'headers' \] = $response-&gt;headers-&gt;all()
3. 'response\_header' =&gt; \[ 'response', '', 'headers' \] = $response-&gt;headerslog\_messagestring日志消息默认：auto-loglog\_levelstring日志级别: debug, info, notice, warning, error, critical, alert, emergency默认：debughandlerstring默认：修改此handler自定义自己的方法zdz\\LaravelMiddlewareLog\\handle\\SingleHandler::class其他操作
----

[](#其他操作)

使用`zdz\LaravelMiddlewareLog\tool\FormatLog`增加日志的内容

### 提供的方法

[](#提供的方法)

##### write(string $point, string $op, $context = '', bool $jsonStrToArray = true): void

[](#writestring-point-string-op-context---bool-jsonstrtoarray--true-void)

- $point：字段
- $op： 写入方式 FormatLog::LOG\_WRITE 覆盖写入， FormatLog::LOG\_APPEND 追加写入
- $context： 内容，字符串或者数组
- $jsonStrToArray：是否将json转换成数组，默认true，避免json嵌套的问题

##### writeMany(array $array): void

[](#writemanyarray-array-void)

- $array 数组，会和日志数据做`array_merge`操作

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity12

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~50 days

Total

5

Last Release

1943d ago

Major Versions

1.0 → 2.02020-11-27

### Community

Maintainers

![](https://www.gravatar.com/avatar/bd31bfe8db255090519cb3caff69f44367d2693c6082308e7b411ff6e1e3e288?d=identicon)[z171535](/maintainers/z171535)

---

Top Contributors

[![zdz1715](https://avatars.githubusercontent.com/u/24859074?v=4)](https://github.com/zdz1715 "zdz1715 (37 commits)")

---

Tags

logmiddlewarelaravelautolaravel-middleware-log

### Embed Badge

![Health badge](/badges/zdz-laravel-middleware-log/health.svg)

```
[![Health](https://phpackages.com/badges/zdz-laravel-middleware-log/health.svg)](https://phpackages.com/packages/zdz-laravel-middleware-log)
```

###  Alternatives

[ytake/laravel-fluent-logger

fluent logger for laravel and lumen

63541.6k1](/packages/ytake-laravel-fluent-logger)[moesif/moesif-laravel

Moesif Collection/Data Ingestion Middleware for Laravel

1065.8k](/packages/moesif-moesif-laravel)[kitloong/laravel-app-logger

Laravel log for your application

101.2M8](/packages/kitloong-laravel-app-logger)[melihovv/laravel-log-viewer

A Laravel log viewer

1231.5k1](/packages/melihovv-laravel-log-viewer)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
