CFileLogRoute错误

时间:2013-10-23 11:39:32

标签: logging yii yii-events

我想为我的自定义错误或自定义消息创建新的日志文件,但我无法做到这一点。甚至我也在main.php文件中进行了更改。

        array(
                'class'=>'CFileLogRoute',
                'levels'=>'mailerror',
                'categories'=>"system.*",
                'logFile'=>'mailError.log'.date('d-m-y s'),
            ),

            array(
                'class'=>'CFileLogRoute',
                'levels'=>'error, info',
            ),

在此之后,当我尝试在index.php上测试我的代码时,这是我的代码

echo Yii::log("Mailer Error ",'mailerror','system.*');

然后这不起作用。什么都没发生。

3 个答案:

答案 0 :(得分:1)

好的我收到了错误。因为我告诉我,我试图在我的index.php文件上运行这些代码,这是应用程序索引文件然后这不起作用。但是当我尝试在我的视图文件中的代码或位于受保护的视图文件夹中的任何或视图文件时,它的工作正常。我也把我的代码改成了这个

'routes'=>array(
            array(
                'class'=>'CFileLogRoute',
                'levels'=>'mailerror',
                'categories'=>"system.*",
                'logFile'=>'mailError.log'.date('d-m-y s'),
            ),

            array(
                'class'=>'CFileLogRoute',
                'levels'=>'error, info',
            ),

这段代码基本上每秒生成一个日志文件,如果我从日期删除's',那么这将每天生成文件。

echo Yii::log("Error : While occuring with function in file",'mailerror','system.*');
echo Yii::log("Error : error in another option",'mailerror','system.*');
echo Yii::log("Error : error diff function",'mailerror','system.*');

所以这个我的函数从位于视图文件夹中的admin.php文件调用。所以 主要错误是'我试图从应用程序索引文件调用日志功能'进行测试,当我尝试从任何其他视图文件,然后它的工作正常。 感谢各位朋友的帮助和支持。感谢CreatoR& darkheir

答案 1 :(得分:0)

不是100%肯定我在说什么,但似乎你无法创建自己的日志级别:

  

消息级别应为以下值之一:

     
      
  • trace:这是Yii :: trace使用的级别。它用于在开发期间跟踪应用程序的执行流程。
  •   
  • info:这是用于记录一般信息。
  •   
  • profile:这是针对性能配置文件,稍后将对此进行描述。
  •   
  • 警告:这是警告信息。
  •   
  • 错误:这是致命的错误消息。
  •   

Source

您应该更改日志的类别而不是级别:

echo Yii::log("Mailer Error ",'error','mailerror');

在配置中:

array(
    'class'=>'CFileLogRoute',
    'levels'=>'error',
    'categories'=>"mailerror",
    'logFile'=>'mailError.log'.date('d-m-y s'),
),

答案 2 :(得分:0)

尝试更改为:echo Yii::log("Mailer Error ",'error','system.mailerror');(最好使用CLogger::LEVEL_ERROR代替error

UPDATE
对于此测试,您需要重新指定CLogger。尝试在Yii :: log

之前插入它
    $logger = Yii::getLogger();
    $logger->autoFlush = 1;
    $logger->autoDump = true;