如何重写日志类

之前生产环境一直使用的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方法

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 2

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

4年前 评论
游离不2

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

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

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!