cakephp 启用查询日志记录后,日志文件在哪里?

mkshixfv  于 2022-11-11  发布在  PHP
关注(0)|答案(2)|浏览(209)

我按照说明在cakephp v3中启用了查询日志记录。
http://book.cakephp.org/3.0/en/orm/database-basics.html#query-logging

// Turn query logging on.
$conn->logQueries(true);

// Turn query logging off
$conn->logQueries(false);

use Cake\Log\Log;

// Console logging
Log::config('queries', [
    'className' => 'Console',
    'stream' => 'php://stderr',
    'scopes' => ['queriesLog']
]);

// File logging
Log::config('queries', [
    'className' => 'File',
    'path' => LOGS,
    'file' => 'queries.log',
    'scopes' => ['queriesLog']
]);

启用查询日志记录后,我找不到日志文件。我查看了日志文件夹。我没有看到任何queries.log。在哪里可以找到日志文件?

pexxcrt2

pexxcrt21#

我已经创建了一个测试项目。创建了一个简单的模型,这样我就可以解析数据。
在控制器中,我添加了以下名称空间:

use App\Model\Table\User; // <---My model
use Cake\ORM\TableRegistry;
use Cake\Log\Log;
use Cake\Datasource\ConnectionManager;

下面是控制器中的基本数据解析:

$conn = ConnectionManager::get('default');
    Log::config('queries', [
        'className' => 'File',
        'path' => LOGS,
        'file' => 'queries.log',
        'scopes' => ['queriesLog']
    ]);

    $users = TableRegistry::get('User'); 

    $conn->logQueries(true);
    $q = $users->find('all');
    $results = $q->all();
    $conn->logQueries(false);

所有这些都很好用。

um6iljoc

um6iljoc2#

还应通过指定'log' => true在数据源配置中启用日志记录:

'Datasources' => [
    'default' => [
        'className' => Connection::class,
        'driver' => Mysql::class,
        'persistent' => false,
        'host' => 'localhost',
        ...
        'log' => true,
        ...
        'url' => env('DATABASE_URL', null),
    ],

相关问题