首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我网站的日志系统

我网站的日志系统
EN

Stack Overflow用户
提问于 2015-03-04 15:56:59
回答 2查看 42关注 0票数 1

我创建了一个小类来保存我的网站日志。我的日志课:

代码语言:javascript
复制
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);
}

}

我在控制器中调用静态方法:

代码语言:javascript
复制
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。我做错了什么?请救救我!提前行动!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-04 16:02:03

在手风琴和文档

如果希望捕获print_r()的输出,请使用返回参数。当此参数设置为TRUE时,print_r()将返回信息,而不是打印信息。

用这个:

代码语言:javascript
复制
Logs::logInfo(print_r($test, true));

而不是:

代码语言:javascript
复制
Logs::logInfo(print_r($test));

希望能帮上忙

我建议您在此任务中使用Monolog

http://symfony.com/doc/current/cookbook/logging/monolog.html

票数 1
EN

Stack Overflow用户

发布于 2015-03-04 16:01:47

R有第二个参数:return。Wich意味着print_r()将返回它的输出,或者只是显示它。默认情况下是假的

所以你得试试

代码语言:javascript
复制
  Logs::logInfo(print_r($test,true));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28858959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档