thinkphp项目调试,如何配置log日志文件地址?
发布于 作者:苏南大叔 来源:程序如此灵动~
作为国内的phper最受欢迎的框架,目前thinkphp到了thinkphp5时代。在本文中,苏南大叔要描述的是thinkphp如何配置log功能。当然,这里的log指的是:记录访客访问数据到本地文件之中。如果,您在php前方还配置了nginx的话,其实这个thinkphp的log功能和nginx的log功能,两者在访客记录方面的功用是重合的。当然,两者也是有所区别的。

为什么要使用这个thinkphp的log功能呢?因为可以通过thinkphp的日志功能,发现一些可疑的访问请求,您懂的。如果您在安全领域做事的话,这个log日志文件就是非常好用的线索发现之地。本文测试环境:mac/thinkphp@5.0.24完整版。
配置源码
在ThinkPHP5.0.24完整版源码中,默认是启用了这个log的文件写入功能的。配置文件位置为:
application/config.php:
'log' => [
// 日志记录方式,内置 file socket 支持扩展
'type' => 'File',
// 日志保存目录
'path' => LOG_PATH,
// 日志记录级别
'level' => [],
],
其中,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目录里面。

所以,如果您想要自定义LOG_PATH的话,就需要在index.php里面,定义一个常量LOG_PATH即可。并且请给予相关目录写入权限。
public/index.php:
define('LOG_PATH', __DIR__ . '/../logdiy/');
相关链接:
更多log设置
官方还给出了下面的更多设置项目,如果您有需求,可以再次深入探讨。
'log' => [
// 日志记录方式,支持 file socket
'type' => 'File',
//日志保存目录
'path' => LOG_PATH,
//单个日志文件的大小限制,超过后会自动记录到第二个文件
'file_size' =>2097152,
//日志的时间格式,默认是` c `
'time_format' =>'c'
// error和sql日志单独记录
'apart_level' => ['error','sql'],
],
禁用log
这个thinkphp自带的log,其实是和nginx的log功能是有重合的。如果您需要,可以禁用掉这个log功能。禁用的方法就是:设置type为test即可。
'log' => [
// 可以临时关闭日志写入
'type' => 'test',
],主动写入日志信息
og::error('错误信息');
Log::info('日志信息');
// 和下面的用法等效
Log::record('错误信息','error');
Log::record('日志信息','info');
trace('错误信息','error');
trace('日志信息','info');
ThinkPHP对系统的日志按照级别来分类,并且这个日志级别完全可以自己定义,系统内部使用的级别包括:
log常规日志,用于记录日志error错误,一般会导致程序的终止notice警告,程序可以运行但是还不够完美的错误info信息,程序输出信息debug调试,用于调试信息sqlSQL语句,用于SQL记录,只在数据库的调试模式开启时有效
相关链接
总结
这些日志里面,有访客访问日志,还有报错信息,甚至sql记录等等。如果从这个层面上讲的话,可能nginx的日志,就没有这个thinkphp自带的日志大而全了。
当然,thinkphp的日志不光可以写入到file里面,还可以写入到其它地方。不过,也不在本文的讨论范畴内了。不要小看thinkphp的日志文件功能,是非常的好用。在接下来的文章中,苏南大叔将要描述一个真实案例,如何从这个日志文件发现黑客入侵痕迹。
更多thinkphp文章,请点击苏南大叔的博客: