2015-06-02 27 views
-1

我有一个问题。PHP:登录到“全局数组”

我正在运行一个从辅助类调用函数的小PHP-CLI-Script。

像这样:

test.php的

$TestHelper   =   new TestHelper();  
$test = $TestHelper->method1(); 
if($test) $TestHelper->method2(); 

helper.php

class TestHelper 
{ 
public static function method1() 
{ 
... 
addlogfunction("This is a test-log-entry"); 
} 
public static function method2() 
{ 
... 
addlogfunction("This is another test-log-entry"); 
} 
... 
} 

两种方法都在helper.php定义。

现在我想写一些通过运行两种方法生成的信息到“全局日志”中。该日志应该包含有关两种被调用方法的信息。

在这种情况下,在连续运行这两种方法后,“全局日志”应该包含“这是一个测试日志条目”和“这是另一个测试日志条目”。

我怎么能解决这个问题?

+0

1.你的方法不返回任何东西2. ['error_log中()'](http://php.net/manual/en/function.error -log.php)?! – Rizier123

+0

哦,这些方法返回一些东西 - 方法1返回一个结果数组或false。但是“错误”可能由许多不同的事情引起。 – MyFault

回答

0

将日志消息添加到数组中,并希望稍后可以输出它。因为如果脚本崩溃,数组将会丢失,并且日志对调试无用。

命令行脚本通常写入STDERR的错误,这将是可用于其他所有的命令行工具,可以写入日志文件等

error_log()如果配置正确会做它(error_log配置指令) 。

你可以也直接write to STDERR

fwrite(STDERR, "Log messages to the error channel\n"); 
+0

嗯,我想通过邮件发送错误。所以我不知道这样做是否可行? – MyFault

+0

这取决于您如何执行脚本,但是如果您对STDOUT和STDERR执行基本输出,它应该更简单且更灵活,并让脚本调用方决定输出是否应该发送到邮件或其他任何地方。当然,您也可以收集数组中的每个日志,并通过邮件通过PHP发送它。或者你可以添加一个记录器来完成所有这些工作(Log4PHP具有可以发送邮件的appender-可以是每个日志事件,也可以是整个脚本调用的集合 - 其他日志库可以这样做)。 – Sven