EasySwoole下日志处理有多种方式。
典型的是官方推荐的处理方式,自定义一个日志处理类实现EasySwoole\Log\LoggerInterface
接口,并在EasySwooleEvent.php
中的initialize
方法中,设置由该类来接管日志,则运行中的所有日志都由该类来处理了。
如果你习惯使用阿里云日志或其它日志服务,也可以在自定义的日志类中实现它们。因为日志的主要场景就是写,读的情况很少,所以基本只需要实现写日志即可。
我这里还有另外一种思路:写日志时按官方推荐的方式,将日志写到本地文件中,再另外开一个进程,将日志文件同步到数据仓库或阿里云日志,用于数据分析,比如阿里云日志的Logtail服务。
这样做的好处:
- 写入超快,并发高,低配服务器上每秒也可达几千甚至上万条。
- 由于日志对实时性的要求很低,由单独进程来同步日志能极大节省资源提高效率。
- 在程序中无需引入或封装第三方的日志库。