백엔드
XE 3 (Xpressengine 3) - storage/logs/query.log
XE 3 (Xpressengine 3) 쪽에서 자체적으로 추가한 기능입니다.
관련 내용은 app/Providers/DatabaseServiceProvider
을 보면 확인할 수 있습니다.
해당 파일에서 확인할 점은 디버그 상태인 경우엔 데이터베이스와 통신하는 쿼리 정보를 저장하는 로그 파일을 만들어준다는 것 입니다.
public function boot()
{
if ($this->app['config']->get('app.debug') === true) {
\\DB::listen(function (QueryExecuted $executed) {
$query = $executed->sql;
$bindings = $executed->bindings;
$time = $executed->time;
$logFile = storage_path('logs/query.log');
$monoLog = new Logger('log');
$monoLog->pushHandler(new StreamHandler($logFile, Logger::INFO));
$prep = $query;
foreach ($bindings as $binding)
{
if ($binding instanceof \\DateTimeInterface) {
$binding = new Carbon(
$binding->format('Y-m-d H:i:s.u'), $binding->getTimezone()
);
}
$prep = preg_replace(
'#\\?#', is_numeric($binding) ? $binding : "'" . $binding . "'",
$prep, 1
);
}
$monoLog->info($prep);
});
}
}
디버그는 config/production/app.php
에서 확인, 변경할 수 있습니다.
<?php
return[
'debug' => false,
'url' => '<http://mysite.com>',
'timezone' => 'Asia/Seoul',
'key' => 'IGjECam1suowPrPJgoQIppZqyAjP9l4i',
];
디버그 모드가 켜져 있는 체 query.log
파일 방치한 경우엔
file_put_contents(): Only 0 of 2283 bytes written, possibly out of free disk space
가 발생할 수 있으니 주의 깊게 관리해줘야 합니다.
0개 댓글