如何重写日志类

之前生产环境一直使用的 yii2,现在新项目想改成 laravel,然后最近一直在看文档和一些视频,包括自己也做了一些测试,关于日志有点疑问,之前用的 yii2,在配置文件里面将 log 的 class 配置成自定义的 class,然后通过自定义的 class 继承框架底层的日志 class,重写类里面的 log 方法,在重写的 log 方法中通过写入 kafka 异步写日志,代码中直接调用框架的 Yii::info () 就能触发自己写的 log 方法,现在用 laravel 想实现同样异步写入的方式,但是发现配置文件里好像都是设置日志路径,级别之类的,没有调用自定义类的配置,我自己想了想,可能在 bootstrap 下的 app.php 里自己手动调用自定义的类或者怎么样,但是感觉不是太好,有没高手指点下,怎么实现我之前 yii2 类似的异步写入的方式,又能使用 laravel 的日志类,其实我看了下源码,就是要自己写个类继承下 Logger 类,然后重写里面的 writeLog 方法,在 writeLog 方法里面将日志写入 kafka,但是我重写了之后不太明白怎么通过 Log::info () 优雅的去触发我自定义的 writeLog 方法

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 2

看了源码,大概知道原因,是因为 LogServiceProvider 里 new LogManager,然后在 LogManager 里 new Logger,所以 Logger 类的名字是写死的,不支持配置,现在想法是是否自定义一个 Provider,然后在里面注册 log,调用自定义的类,自定义的类再继承框架的类,重写里面的部分方法去实现,不知道有没更优雅点的方式

5年前 评论
游离不2

不用重写吧,扩展一个日志驱动就好啦

5年前 评论
我是小菜鸟 (楼主) 5年前