作为国内的phper最受欢迎的框架,目前thinkphp到了thinkphp5时代。在本文中,苏南大叔要描述的是thinkphp如何配置log功能。当然,这里的log指的是:记录访客访问数据到本地文件之中。如果,您在php前方还配置了nginx的话,其实这个thinkphplog功能和nginxlog功能,两者在访客记录方面的功用是重合的。当然,两者也是有所区别的。

苏南大叔:thinkphp项目调试,如何配置log日志文件地址? - thinkphp-log
thinkphp项目调试,如何配置log日志文件地址?(图6-1)

为什么要使用这个thinkphplog功能呢?因为可以通过thinkphp的日志功能,发现一些可疑的访问请求,您懂的。如果您在安全领域做事的话,这个log日志文件就是非常好用的线索发现之地。本文测试环境:mac/thinkphp@5.0.24完整版

配置源码

ThinkPHP5.0.24完整版源码中,默认是启用了这个log的文件写入功能的。配置文件位置为:

application/config.php

'log' => [
  // 日志记录方式,内置 file socket 支持扩展
  'type'  => 'File',
  // 日志保存目录
  'path'  => LOG_PATH,
  // 日志记录级别
  'level' => [],
],

苏南大叔:thinkphp项目调试,如何配置log日志文件地址? - application-config
thinkphp项目调试,如何配置log日志文件地址?(图6-2)

其中,LOG_PATH的默认值是这里配置的:
thinkphp/base.php:

defined('APP_PATH') or define('APP_PATH', dirname($_SERVER['SCRIPT_FILENAME']) . DS);
defined('ROOT_PATH') or define('ROOT_PATH', dirname(realpath(APP_PATH)) . DS);
defined('RUNTIME_PATH') or define('RUNTIME_PATH', ROOT_PATH . 'runtime' . DS);
defined('LOG_PATH') or define('LOG_PATH', RUNTIME_PATH . 'log' . DS);

意思就是默认日志文件会出现在runtime目录下面的log目录里面。

苏南大叔:thinkphp项目调试,如何配置log日志文件地址? - thinkphp_base
thinkphp项目调试,如何配置log日志文件地址?(图6-3)

所以,如果您想要自定义LOG_PATH的话,就需要在index.php里面,定义一个常量LOG_PATH即可。并且请给予相关目录写入权限。

public/index.php

define('LOG_PATH', __DIR__ . '/../logdiy/');

苏南大叔:thinkphp项目调试,如何配置log日志文件地址? - public-index
thinkphp项目调试,如何配置log日志文件地址?(图6-4)

相关链接:

相关链接

总结

这些日志里面,有访客访问日志,还有报错信息,甚至sql记录等等。如果从这个层面上讲的话,可能nginx的日志,就没有这个thinkphp自带的日志大而全了。

当然,thinkphp的日志不光可以写入到file里面,还可以写入到其它地方。不过,也不在本文的讨论范畴内了。不要小看thinkphp的日志文件功能,是非常的好用。在接下来的文章中,苏南大叔将要描述一个真实案例,如何从这个日志文件发现黑客入侵痕迹。

更多thinkphp文章,请点击苏南大叔的博客:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接作者。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

 【加群】加入QQ群【175454274】和大家一起讨论这个问题

 【源码】本文代码片段及相关软件,请点此获取

 【绝密】秘籍文章入口,仅传授于有缘之人   php    thinkphp

本站的忠实读者小伙伴,正在阅读下面这些文章: