我网站的日志系统
System of logs for my site
我创建了一个小的 class 来保存我网站的日志。我的日志 class :
class Logs {
public static function writeFile($message)
{
$log_path = '/home/vagrant/Workspace/symfony/app/logs';
// Set path:
$log_path .= '/' . date('Ymd');
$log_path .= '.log';
$s_message = date("Y-m-d H:i:s") . ' (' . microtime(true) . ') ' . $message;
$s_message .= "\n";
file_put_contents($log_path, $s_message, FILE_APPEND);
}
public static function logInfo($s_message)
{
self::writeFile($s_message);
}
}
然后我在控制器中调用静态方法:
public function indexAction()
{
$em = $this->getDoctrine()->getManager();
$categories = $em->getRepository('EnsJobeetBundle:Category')->getWithJobs();
$test = array(
'1'=>'1',
'2'=>'2',
'3'=>'3'
);
Logs::logInfo(print_r($test));
return $this->render('EnsJobeetBundle:Job:index.html.twig', array(
'categories' => $categories
));
}
问题是:在我看来,它显示了这个 $test 数组,而在我的日志中只写入了数组的第一个值,因此值为 1。
我做错了什么?请帮帮我!提前致谢!
print_r 有第二个参数:return
。这意味着将 print_r()
returns 它的输出,或者只是显示它。默认为 false
所以你需要试试
Logs::logInfo(print_r($test,true));
根据doc:
If you would like to capture the output of print_r(), use the return
parameter. When this parameter is set to TRUE, print_r() will return
the information rather than print it.
使用这个:
Logs::logInfo(print_r($test, true));
而不是:
Logs::logInfo(print_r($test));
希望对您有所帮助
我建议您使用 Monolog
完成此任务
http://symfony.com/doc/current/cookbook/logging/monolog.html
我创建了一个小的 class 来保存我网站的日志。我的日志 class :
class Logs {
public static function writeFile($message)
{
$log_path = '/home/vagrant/Workspace/symfony/app/logs';
// Set path:
$log_path .= '/' . date('Ymd');
$log_path .= '.log';
$s_message = date("Y-m-d H:i:s") . ' (' . microtime(true) . ') ' . $message;
$s_message .= "\n";
file_put_contents($log_path, $s_message, FILE_APPEND);
}
public static function logInfo($s_message)
{
self::writeFile($s_message);
}
}
然后我在控制器中调用静态方法:
public function indexAction()
{
$em = $this->getDoctrine()->getManager();
$categories = $em->getRepository('EnsJobeetBundle:Category')->getWithJobs();
$test = array(
'1'=>'1',
'2'=>'2',
'3'=>'3'
);
Logs::logInfo(print_r($test));
return $this->render('EnsJobeetBundle:Job:index.html.twig', array(
'categories' => $categories
));
}
问题是:在我看来,它显示了这个 $test 数组,而在我的日志中只写入了数组的第一个值,因此值为 1。 我做错了什么?请帮帮我!提前致谢!
print_r 有第二个参数:return
。这意味着将 print_r()
returns 它的输出,或者只是显示它。默认为 false
所以你需要试试
Logs::logInfo(print_r($test,true));
根据doc:
If you would like to capture the output of print_r(), use the return parameter. When this parameter is set to TRUE, print_r() will return the information rather than print it.
使用这个:
Logs::logInfo(print_r($test, true));
而不是:
Logs::logInfo(print_r($test));
希望对您有所帮助
我建议您使用 Monolog
完成此任务
http://symfony.com/doc/current/cookbook/logging/monolog.html