0

我想为我的自定义错误或自定义消息创建新的日志文件,但我无法做到这一点。甚至我也对 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.*');

那么这是行不通的。什么都没有发生。

4

3 回答 3

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 文件调用的函数。所以主要错误是“我试图从应用程序索引文件调用日志函数”进行测试,当我从任何其他视图文件尝试时,它工作正常。无论如何感谢朋友的帮助和支持。感谢创作者和黑暗继承人

于 2013-10-23T12:05:46.877 回答
0

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

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

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

资源

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

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

在配置中:

array(
    'class'=>'CFileLogRoute',
    'levels'=>'error',
    'categories'=>"mailerror",
    'logFile'=>'mailError.log'.date('d-m-y s'),
),
于 2013-10-23T11:45:18.937 回答
0

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

更新
对于此测试,您需要重新配置 CLogger。尝试在 Yii::log 之前插入

    $logger = Yii::getLogger();
    $logger->autoFlush = 1;
    $logger->autoDump = true;
于 2013-10-23T11:47:44.330 回答