Laravel Log 自定义日志文件,包含用户 ID 和日期

2024-03-31

我需要在用户日志文件中跟踪和更新用户的所有日志活动,日志文件名称为 storage/log/{Auth::user()->}_26_02_2021.log。

我如何使用 Laravel Logger 来实现这一点。

我搜索了谷歌没有找到有用的教程。


我只回答这个问题吧。我如何找到上述问题的解决方案。

我在 App\Logging 文件夹中创建了一个像这样的点击文件

namespace App\Logging;

use Monolog\Handler\RotatingFileHandler;
use Monolog\Handler\FormattableHandlerInterface;
use Monolog\Formatter\LineFormatter;
class CustomLogFilenames
{
    /**
     * Customize the given logger instance.
     *
     * @param  \Illuminate\Log\Logger  $logger
     * @return void
     */
    public function __invoke($logger)
    {
        foreach ($logger->getHandlers() as $handler) {
            if ($handler instanceof RotatingFileHandler) {
                 $userId = auth()->user()->id;
                $handler->setFilenameFormat("{filename}-$userId-{date}", 'Y-m-d');
            }

            if ($handler instanceof FormattableHandlerInterface) {
                $handler->setFormatter(  new LineFormatter("[%datetime%]:  %message% \n", 'Y-m-d H:i:s', true));   
            }
        }
    }
}

并在 config\logging 中添加以下配置

    'userTracker' => [
        'driver' => 'daily',
        'tap' => [App\Logging\CustomLogFilenames::class],
        'path' => storage_path('logs/user-id.log'),
        'level' => 'debug',
    ],

我在控制器中添加了这个

   \Log::channel('userTracker')->info('Edit the  Page');

它创建了一个名为 user-id-100-2020-02-26.log 的文件

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Laravel Log 自定义日志文件,包含用户 ID 和日期 的相关文章

随机推荐

  • 在 Codename One 中管理我的应用程序的演示/完整版本

    我被命令提供 2 个版本的应用程序 一个演示 轻型 有限功能 另一个完整 所有功能 我的代码中有一个布尔值 它告诉我哪个正在运行 它们都在模拟器或测试设备 iOS 和 Android 上按预期运行 现在我想分发它们 所以我读到这是可能的使用
  • barplot():每组的频率百分比

    我正在尝试制作一个分组条形图 其频率 在 y 轴上 depression meds N Y 在 x 轴上 按另一个变量分组score 低高 到目前为止我的代码 meds lt table data2 depression meds data
  • React,使用本地存储实现暗光模式

    我正在尝试使用use local storage在 React 中实现主题变换器 应用程序组件 import App css import React from react import Navbar SearchBar Header Ma
  • 如何使文本框与背景无法区分?

    我应该将哪种 css 应用到文本框 使其与背景相同 这意味着用户不会觉得他正在文本框中输入内容 我尝试提供相同的背景颜色 但它仍然没有提供我想要的确切内容 用户仍然可以感觉到它是一个文本框 你的意思是这样吗 input border 0 b
  • 在 iBooks 中打开 iPad 文档文件夹中保存的 PDF 文件?

    我已将 pdf 文件保存在 iPad 上的应用程序文档文件夹中 我希望用户在 iPad 上使用 iBooks 打开该 PDF 文件 有什么方法可以打开 iBooks 中保存在应用程序文档文件夹中的 PDF 吗 EDIT Best optio
  • jquery-如何在输入2个数字后自动插入冒号

    我想要一个接受 HH MM 小时 分钟 格式的文本框 因此 当用户输入 HH 值时 它应该自动在后面插入一个冒号 并让用户输入 MM 值 我不想为此使用任何插件 我该怎么做呢 thanks HTML
  • opencv中使用静态库代替动态库

    我在 Visual Studio 2012 中有一个项目 它使用 opencv 动态库 它编译 链接并且运行良好 我想更改项目 使其使用静态库而不是动态库 我将项目 VC 目录中的库目录从 C thirdparty opencv build
  • 您可以/应该在 Xcode 的 xcassets 中存储多少张图像?

    我正在尝试在 xcassets 中存储项目的大量图像 大约2 000 然而 它们都非常小 高度优化 每个只有 3 5kB 左右 因此总大小可能为 6 10MB 这会导致内存问题吗 这是不推荐的吗 我知道我可以让用户根据需要从服务器下载它们
  • 实体框架 LINQ to Entities 加入查询超时

    我正在执行以下 LINQ to Entities 查询 但它被卡住并且直到超时才返回响应 我在 SQL Server 上执行了相同的查询 它在 3 秒内返回 92000 var query from r in WinCtx PartsRou
  • 使用 cancan 进行基于角色的授权不起作用 Rails 4 - Ruby 2.1

    我使用 cancan 1 6 10 和 devise 3 2 2 我一直在使用本指南 https github com ryanb cancan wiki Role Based Authorization wiki many roles p
  • 在 Toastr 中显示错误和异常,或使用 MVC4 和实体框架的类似方法

    我正在尝试找到一种方法 当我的应用程序中发生异常或错误时 使用 Toastr 向用户显示错误 我遇到的问题似乎表明 使用 Toastr 在当前视图中显示的控制器或数据访问层中不可能发生异常 我想知道你们中是否有人遇到过这种情况以及您的解决方
  • 如何在 Vim 中打开文件列表中的文件?

    我在 vim 中打开了一个较长的文件列表 如下所示 dir1 file1 dir2 file2 dir2 file3 如何在同一 vim 会话中以最简单的方式通过拆分或编辑将它们一一打开 我会用 p 表示制表符 vim p cat your
  • 在android中哪里以及如何使用onKey,onkeyDown,onKeyPressed事件?

    你好 在 android 中哪里使用 onKey 和 onKeyUp Down 事件 例如我有一个文本视图 当用户按下任意键时我想在文本视图中显示该字符 在这种情况下 使用哪个事件 上面 PLEASE explain with EXAMPL
  • 在页面卸载之前显示加载 GIF

    我正在开发一个可以在计算机以及 Ipad Iphone 平板电脑和 Android 手机上运行的应用程序 我有一个要求 即当用户从一个页面移动到另一页面时显示正在加载 gif 因为这将为用户提供页面加载 卸载正在进行的信息 所以我尝试了下面
  • Angular - 服务器中更改的图像未反映在视图中

    我有一个 Angular 应用程序 它显示人们的个人资料图像 从服务器加载 并可以选择更改它 当应用程序第一次加载时 图像会正确显示 我调用 Web 服务来更改服务器上的图像 问题是 即使在更改远程服务器上的图像后 即使刷新页面 浏览器上的
  • 如何从分组数据框中的每个组中获取第 n 个元素

    我有一个大数据框 其中有一列 有一个组名称 它分组为dplyr 因此多行具有相同的组名称 为了减少数据 我想从每组的第一个元素开始提取每个第 n 个元素 有没有R way没有循环 用序列对每一行进行子集化 会出现经常丢失每组的第一行的问题
  • 构建 Gstreamer 编辑服务失败

    I run autogen sh在克隆的存储库中 它无法显示以下内容 configure No package gstreamer plugins base 1 0 found configure error no gstreamer pl
  • Python 的 subprocess.Popen() 的 Java 等价物是什么?

    import subprocess import os prefix os path expanduser bin kb p subprocess Popen prefix koreball prefix data 3 你可以尝试使用Run
  • Microsoft.Web.UI.WebControls Treeview 在某些计算机上未呈现

    我们有一个简单的网页 显示树视图 Microsoft Web UI WebControls 现在 在某些机器上 主要是客户端机器 树视图无法正确呈现 我已经在我的所有机器上测试了这个 甚至是 Linux 并且所有内容都在这里正确呈现 我可以
  • Laravel Log 自定义日志文件,包含用户 ID 和日期

    我需要在用户日志文件中跟踪和更新用户的所有日志活动 日志文件名称为 storage log Auth user gt 26 02 2021 log 我如何使用 Laravel Logger 来实现这一点 我搜索了谷歌没有找到有用的教程 我只