Php 在日志中显示哪个文件路径和行号?
我已经编写了一个将条目添加到文件或输出流的程序 将条目添加到日志中时,它还包括上下文信息,例如为添加条目而调用的文件和行号 我的问题是:我应该使用添加条目的调用的文件路径和行号,还是使用触发事件的调用方来记录消息 trigger.php:Php 在日志中显示哪个文件路径和行号?,php,Php,我已经编写了一个将条目添加到文件或输出流的程序 将条目添加到日志中时,它还包括上下文信息,例如为添加条目而调用的文件和行号 我的问题是:我应该使用添加条目的调用的文件路径和行号,还是使用触发事件的调用方来记录消息 trigger.php: 另外,如果您有三个级别而不是两个级别,该怎么办?如果你有四个呢?我建议您按照常规做法,跟踪实际log()调用出现的行 class client { public function get_some_data() { $data = $this-
另外,如果您有三个级别而不是两个级别,该怎么办?如果你有四个呢?我建议您按照常规做法,跟踪实际log()调用出现的行
class client
{
public function get_some_data()
{
$data = $this->get_my_data();
if (empty($data)) {
$this->log->add('no data in sight');
}
// lots of processing
if ($something) {
$this->log->add('data was corrupted');
}
}
}
//...
$client->get_some_data();
如果只记录上层调用,则只知道它发生在get_some_data()中,而不知道确切的位置。您可能会想“是的,但我可以使用记录的确切错误来找到它”,但当您挖掘日志以查明一个问题时,您确实不想这样做
如果您多次调用此函数,并且希望了解有关哪个函数记录了该行的更多信息,则可以在日志旁边存储一个最小堆栈跟踪,请参阅。它可以尽可能小
2011-12-25 17:02:37 ERROR "data was corrupted" at /path/client.php:6 (called from /path/somefile.php:57)
我还强烈建议您添加不同的日志记录级别,因为您希望在开发/调试环境中使用的日志记录不是您希望在生产环境中使用的日志记录。第6行会为您提供足够的信息吗?如果它只说第6行,你怎么知道它是从哪里来的??如果你在多个不同的地方使用Do类,并且它总是说第6行似乎不是很有用谢谢,我在我的问题中澄清了一些事情。我从中得到的是,我应该在这个例子中包括这两个方面?
class client
{
public function get_some_data()
{
$data = $this->get_my_data();
if (empty($data)) {
$this->log->add('no data in sight');
}
// lots of processing
if ($something) {
$this->log->add('data was corrupted');
}
}
}
//...
$client->get_some_data();
2011-12-25 17:02:37 ERROR "data was corrupted" at /path/client.php:6 (called from /path/somefile.php:57)