Mysql Symfony2在Symfony和csv文件中添加查询日志记录
我需要在Symfony和csv文件中添加查询日志记录。有时数据库可能很忙或不可用,但我想记录所有查询 此日志应为csv格式,包含以下列: -网址 -数据源名称 -SQL内容 -参数 -用户名 -查询执行精度的开始时间(毫秒) -查询执行精度的结束时间(毫秒) 有什么帮助吗?我怎么做?或者可以为此做些什么 可能是自定义函数,在该函数中,我可以使用当前登录用户信息以及url和执行查询以访问特定url的时间创建csv文件 在Symfony中,如果您有一个公共SQL函数,该函数在每个 然后执行查询,这对您很有帮助 这就是我在我的案例中实现的东西。希望这能对你有所帮助Mysql Symfony2在Symfony和csv文件中添加查询日志记录,mysql,logging,mysql-workbench,symfony-2.8,Mysql,Logging,Mysql Workbench,Symfony 2.8,我需要在Symfony和csv文件中添加查询日志记录。有时数据库可能很忙或不可用,但我想记录所有查询 此日志应为csv格式,包含以下列: -网址 -数据源名称 -SQL内容 -参数 -用户名 -查询执行精度的开始时间(毫秒) -查询执行精度的结束时间(毫秒) 有什么帮助吗?我怎么做?或者可以为此做些什么 可能是自定义函数,在该函数中,我可以使用当前登录用户信息以及url和执行查询以访问特定url的时间创建csv文件 在Symfony中,如果您有一个公共SQL函数,该函数在每个 然后执行查询,这对
public function execute($parameters = null)
{
if ($this->executed) {
return $this;
}
$executionStartTime = microtime(true);
$stmt = $this->execute($parameters);
$this->result = $stmt->fetchAll();
// Close cursor to allow query caching.
$stmt->closeCursor();
$this->executed = true;;
$executionEndTime = microtime(true);
//below code is added to logging for SQL queries to web server in csv format
$execution_time = $executionEndTime - $executionStartTime;
$getpageParameter = $parameters;
$getusername = $this->getUser()->getUsername();
$url = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$parms = json_encode($getpageParameter);
$data = array(
date ("Y-m-d H:i:s")."|".$url."|".$getusername."|".$parms."|".$executionStartTime."|".$executionEndTime,
);
if(!file_exists('/../../app/logs/querylog.csv')){
$column = array(
"DATE & TIME|URL|USERNAME|PARAMETERS|START TIME|END TIME"
);
$fp = fopen('/../../app/logs/querylog.csv', 'a+');
foreach ( $column as $line ) {
$val = explode("|", $line);
fputcsv($fp, $val);
}
fclose($fp);
}
$fp = fopen('/../../app/logs/querylog.csv', 'a+');
foreach ( $data as $line ) {
$val = explode("|", $line);
fputcsv($fp, $val);
}
fclose($fp);
return $this;
}