我现在将这个设置放在程序的开头,但是错误还是没有能够显示在我设置的文件中。比如我在test.php中做好这个设置,test.php中发生错误了,这时的错误还是无法写入到我设置的文件中啊。该如何解决啊,是不是应该放在apache启动的文件中,但是我不知道具体怎么弄。那位给个解决方法啊。

解决方案 »

  1.   

    $error_path的文件有没有写权限?
      

  2.   

    例如:
    test.php文件
    代码如下:
    <?php
    $error_path = $_SERVER['DOCUMENT_ROOT'] . "/WebServer/Error". "/" .date("Y-m-d");
    if (!file_exists($error_path))
    {
        mkdir($error_path, 0777);
        $error_path = $error_path ."/".date("Y-m-d") ."_error.log";
        $handle = fopen($error_path, "w");
        ini_set("error_log", $error_path);
    }
    else
    {
        $error_path = $error_path ."/".date("Y-m-d") ."_error.log";
        ini_set("error_log", $error_path);
    }echo dd;
    d:/\?>
    这里的错误就不会写入我设置的log中
      

  3.   

    什么意思啊,notice是可以写进去的啊。
      

  4.   

    <?php
    error_reporting(E_ALL); // 输出所有错误
    $error_path = $_SERVER['DOCUMENT_ROOT'] . "/WebServer/Error". "/" .date("Y-m-d");
    if (!file_exists($error_path))
    {
      mkdir($error_path, 0777);
      $error_path = $error_path ."/".date("Y-m-d") ."_error.log";
      $handle = fopen($error_path, "w"); // 还有,文件打开后都不关闭的吗?
      fclose($handle);
      ini_set("error_log", $error_path);
    }
    else
    {
      $error_path = $error_path ."/".date("Y-m-d") ."_error.log";
      ini_set("error_log", $error_path);
    }echo dd;
    d:/\?>
      

  5.   


    这样修改后error还是不能写入到我设置的文件中啊
      

  6.   

    <?php
    error_reporting(E_ALL); // 输出所有错误
    $error_path = $_SERVER['DOCUMENT_ROOT'] . "/WebServer/Error". "/" .date("Y-m-d");
    if (!file_exists($error_path))
    {
      mkdir($error_path, 0777);
      $error_path = $error_path ."/".date("Y-m-d") ."_error.log";
      $handle = fopen($error_path, "w"); // 还有,文件打开后都不关闭的吗?
      fclose($handle);
      chmod($error_path,777); //给文件写权限
      ini_set("error_log", $error_path);
    }
    else
    {
      $error_path = $error_path ."/".date("Y-m-d") ."_error.log";
      ini_set("error_log", $error_path);
    }echo dd;
    d:/\?>
      

  7.   

    d:/\这个是语法错误,程序根本不能正确执行。
    error_log记录的是你程序解析没有问题,但是比如mysql_connect有问题,就会纪录进去了。
      

  8.   

    如果在php.ini文件中改变error路径的话,这些错误都是可以记录的
      

  9.   

    这不是废话嘛!
    你在php.ini中该,error_log已经起效了
    你在出错的文件中用ini_set,ini_set根本没有执行嘛!!!
      

  10.   

    我知道啊,我就是想问有没有类似的方法,可以替换.ini的这种设置
      

  11.   

    本帖最后由 xuzuning 于 2010-08-16 13:31:21 编辑
      

  12.   

    是的啊,这些都好设置啊,你在php文件中设置好后,在引用到其它文件中,其它文件中有个语法错误什么的,那么这个错误还是无法写入到呢设置的文件中啊。
      

  13.   

    在程序中设置,只在当前程序中有效
    在php.ini中设置才是永久的