我在官网文档上看到只要是调试模式 日志就会记录。可我的日志文件怎么弄都不会生成。
index.php内容是:
<?php//缓存路径define('APP_DEBUG',True);define('APP_PATH','./Application/');define('THINK_PATH','./ThinkPHP/');require THINK_PATH.'ThinkPHP.php';?>
页面内容是:
<?phpThink\Log::record('测试日志信息');?>
请问还需要配置什么才会在Logs目录里出现日志文件。
回复讨论(解决方案)
1、日志的记录并非实时保存的,只有当当前请求完成或者异常结束后才会实际写入日志信息,否则只是记录在内存中。
2、record方法只会记录当前配置允许记录的日志级别的信息,所以你还需要配置一下记录的级别:
'LOG_LEVEL' =>'EMERG,ALERT,CRIT,ERR', // 只记录EMERG ALERT CRIT ERR 错误
3、采用record方法记录的日志信息不是实时保存的,如果需要实时记录的话,可以采用write方法,write方法写入日志的时候 不受配置的允许日志级别影响,可以实时写入任意级别的日志信息:
Think\Log::write('测试日志信息,这是警告级别,并且实时写入','WARN');
调试模式会自动开启debug.php
/** * ThinkPHP 默认的调试模式配置文件 */defined('THINK_PATH') or exit();// 调试模式下面默认设置 可以在应用配置目录下重新定义 debug.php 覆盖return array( 'LOG_RECORD' => true, // 进行日志记录 'LOG_EXCEPTION_RECORD' => true, // 是否记录异常信息日志 'LOG_LEVEL' => 'EMERG,ALERT,CRIT,ERR,WARN,NOTIC,INFO,DEBUG,SQL', // 允许记录的日志级别 'DB_FIELDS_CACHE' => false, // 字段缓存信息 'DB_SQL_LOG' => true, // 记录SQL信息 'TMPL_CACHE_ON' => false, // 是否开启模板编译缓存,设为false则每次都会重新编译 'TMPL_STRIP_SPACE' => false, // 是否去除模板文件里面的html空格与换行 'SHOW_ERROR_MSG' => true, // 显示错误信息 'URL_CASE_INSENSITIVE' => false, // URL区分大小写);
我将 页面内容改为
<?phpThink\Log::record('测试调试错误信息', Think\Log::INFO);Think\Log::save();?>
还是没用。Logs目录就是不生成文件。。求解
你是部署问题还是啥哟?检查下文件夹下的操作权限。
http://document.thinkphp.cn/manual_3_2.html#log
http://blog.sina.com.cn/s/blog_7fb1495b0100xkk8.html
看看就会了
楼主,你的问题很可能是你把Runtime/Logs/下面的Home目录,或者你绑定的其它目录给删除了。重建一个看看。
你是操作的HOME模块吗 如果不是 像我操作的是Admin模块 就自己在Runtime/Logs/下建一个Admin目录