控制Log信息的函数

来源:互联网 发布:woc网络用语 编辑:程序博客网 时间:2024/05/16 18:34

调试PHP程序的一种重要的方法就是查看Log信息。如果能够方便地控制Log信息的级别以及Log信息的显示内容,将会给程序调试带来更多的便利。下面的几个函数可以方便地实现这个功能。

  1. $ss_log_level = 0;
  2. $ss_log_filename = /tmp/ss-log;
  3. $ss_log_levels = array(
  4.  NONE => 0,
  5.  ERROR => 1,
  6.  INFO => 2,
  7.  DEBUG => 3);
  8. function ss_log_set_level ($level = ERROR) {
  9.  global $ss_log_level;
  10.  $ss_log_level = $level;
  11. }
  12. function ss_log ($level, $message) {
  13.  global $ss_log_level, $ss-log-filename;
  14.  if ($ss_log_levels[$ss_log_level] < $ss_log_levels[$level]) {
  15. // 不显示Log信息
  16. return false;
  17.  }
  18.  $fd = fopen($ss_log_filename, “a+”);
  19.  fputs($fd, $level. - [.ss_timestamp_pretty().] - .$message.”n”);
  20.  fclose($fd);
  21.  return true;
  22. }
  23. function ss_log_reset () {
  24.  global $ss_log_filename;
  25.  @unlink($ss_log_filename);
  26. }

在上面的函数中,有四个Log级别变量。运行PHP程序时,只有当Log的级别低于预设的级别值时,Log信息才可以被记录和显示出来。例如,在程序中加入如下的一条语句:

  1. ss_log_set_level(INFO);

那么,运行PHP程序时,只有ERROR和INFO级别的LOG信息才能被记录和显示出来,DEBUG级的信息则被忽略了。除此之外,我们还可以设定显示的信息内容,其语句如下:

  1. ss_log(ERROR, “testing level ERROR”);
  2. ss_log(INFO, “testing level INFO”);
  3. ss_log(DEBUG, “testing level DEBUG”);

你也可以随时使用下面的语句清空LOG信息:

  1. ss_log_reset();