log_file

log_file => '/data/log/swoole.log', 指定swoole错误日志文件。在swoole运行期发生的异常信息会记录到这个文件中。默认会打印到屏幕。

注意log_file不会自动切分文件,所以需要定期清理此文件。观察log_file的输出,可以得到服务器的各类异常信息和警告。

log_file中的日志仅仅是做运行时错误记录,没有长久存储的必要。

开启守护进程模式后(daemonize => true),标准输出将会被重定向到log_file。在PHP代码中echo/var_dump/print等打印到屏幕的内容会写入到log_file文件

日志标号

在日志信息中,进程ID前会加一些标号,表示日志产生的线程/进程类型。

  • # Master进程
  • $ Manager进程
  • * Worker进程
  • ^ Task进程

重新打开日志文件

在服务器程序运行期间日志文件被mv移动或unlink删除后,日志信息将无法正常写入,这时可以向Server发送SIGRTMIN信号实现重新打开日志文件。

  • 1.8.10或更高版本可用
  • 仅支持Linux平台
  • 不支持UserProcess进程


  • dereky

    能否配置每个work进程将log打到各自的log_file里?

  • 李碧鸿

    我在onReceive里echo东西,但在log_file里只有第一条记录,后面的都没了,咋回事啊

  • 破军

    怎么向Server发送SIGRTMIN信号?不理解。

  • 启用守护进程后 php打印的文字怎么设置不存入log文件中

  • 拼 丶

    能按照时间记录日志???每天一份,不然都在一个文件里面的话,太大了。

  • 永-远

    https://www.cnblogs.com/52fhy/p/6935407.html 这个笔记就是利用『Server发送SIGRTMIN信号实现重新打开日志文件』方法实现每天生成一份日志的,可以参考一下。

  • 阿讷

    kill -34 masterpid

  • rtsg

    开启守护进程后 日志无法输出 文件也是777权限 还需要注意那些地方

  • 开心快乐每一天

    $serv->set(array( 'worker_num' => 3, 'daemonize' => 0,//守护进程 'backlog' => 128, 'log_file' => 'swoole.log', 'task_worker_num' =>'40' ));

  • 开心快乐每一天

    可以生成日志,但是没有标号

  • yellowying

    $serv->set([ 'daemonize'=>0,'log_file '=>'swoole.log',]); 日志没有输出呢,文件目录都是777,有知道原因的吗

  • yellowying

    'daemonize'=>1也试过了

  • 黄智辉

    同上,我也遇到这个问题