我想从监视程序表中获取所有错误消息,但是当我从表中获取消息列时,它具有%path,%function,!message类似于此消息的消息我如何能够获取整个真实消息这个信号?
<?php
// Begin building the query.
$query = db_select('watchdog', 'th')
->extend('PagerDefault')
->orderBy('wid')
->distinct()
->fields('th', array('variables', 'type', 'severity', 'message'))
->limit(2000);
// Fetch the result set.
$result = $query -> execute();
// Loop through each item and add to $row
foreach ($result as $row) {
blablabla($row);
}
function blablabla($row) {
$severity = $row -> severity;
$type = $row -> type;
$message = $row -> message;
?>
当我使用$message
时,它会显示如下内容:
%type: !message in %function (line %line of %file)...
保持%path
:
%type: !message in %function (line %line of %file)...
开始列出%directory
中的文件。
我怎么能纠正这件事?我可以使用错误API以及如何操作吗?
答案 0 :(得分:2)
这应该让你入门
blablabla($row) {
$variables = unserialize($row->variables); // un serialize variables
$message = t($row->message, array(
'type' => $row->type,
'severity'=> $row->severity,
// replace the rest of the variables
));
另外,检查这些。这就是drupal从看门狗表中读取的方式:
dblog_overview
;这是呈现此页面的功能admin/reports/dblog
dblog_event
;这是在此页面admin/reports/event/ID
内显示单个dblog条目的函数。答案 1 :(得分:2)
请看下面的代码:
if (isset($row->message) && isset($row->variables)){
if ($row->variables === 'N;')
$dbmessage = $row->message;
else $dbmessage = t($row->message, unserialize($row->variables));
$dbmessage = filter_xss($dbmessage, array());
}