Revision: 18634
          
http://svn.sv.gnu.org/viewvc/?view=rev&root=phpgroupware&revision=18634
Author:   johang
Date:     2008-07-03 19:15:04 +0000 (Thu, 03 Jul 2008)

Log Message:
-----------
Improved logging; log php errors for easier debugging.

Modified Paths:
--------------
    trunk/syncml/inc/class.syncml_logger.inc.php
    trunk/syncml/inc/constants.inc.php
    trunk/syncml/syncml.php

Modified: trunk/syncml/inc/class.syncml_logger.inc.php
===================================================================
--- trunk/syncml/inc/class.syncml_logger.inc.php        2008-07-02 16:50:08 UTC 
(rev 18633)
+++ trunk/syncml/inc/class.syncml_logger.inc.php        2008-07-03 19:15:04 UTC 
(rev 18634)
@@ -23,6 +23,11 @@
                {
                        $this->handle = fopen(SYNCML_DEBUG_FILE, 'a');
                        $this->log_run = substr(md5(microtime()), 0, 4);
+
+                       if(SYNCML_DEBUG_MODE) {
+                               fwrite($this->handle, sprintf("== new run (%s) 
==\n",
+                                       date('H:i:s')));
+                       }
                }
 
                static function get_instance()
@@ -43,6 +48,14 @@
                        }
                }
 
+               function log_error($errno, $errstr, $errfile, $errline) {
+                       if(SYNCML_DEBUG_MODE) {
+                               fwrite(
+                                       $this->handle,
+                                       sprintf("%s, error: %s\n", 
$this->log_run, $errstr));
+                       }
+               }
+
                function log($message)
                {
                        if(SYNCML_DEBUG_MODE) {

Modified: trunk/syncml/inc/constants.inc.php
===================================================================
--- trunk/syncml/inc/constants.inc.php  2008-07-02 16:50:08 UTC (rev 18633)
+++ trunk/syncml/inc/constants.inc.php  2008-07-03 19:15:04 UTC (rev 18634)
@@ -14,7 +14,8 @@
         * Debug properties.
         */
        define('SYNCML_DEBUG_MODE', true);
-       define('SYNCML_DEBUG_FILE', '/tmp/phpgw');
+       define('SYNCML_DEBUG_FILE', '/tmp/phpgw/debug.txt');
+       define('SYNCML_LOG_DIR', '/tmp/phpgw');
 
        /**
         * DEVID string used by DEVINF response.

Modified: trunk/syncml/syncml.php
===================================================================
--- trunk/syncml/syncml.php     2008-07-02 16:50:08 UTC (rev 18633)
+++ trunk/syncml/syncml.php     2008-07-03 19:15:04 UTC (rev 18634)
@@ -12,9 +12,6 @@
 
        ob_start();
 
-       error_reporting(E_ALL);
-       // error_reporting(0);
-
        $phpgw_info = array();
 
        $GLOBALS['phpgw_info']['flags'] = array(
@@ -38,18 +35,26 @@
        require_once 'inc/class.syncml_message.inc.php';
 
        $file_date = gettimeofday(true);
+
        // this is a ugly, ugly hack
        //$GLOBALS['phpgw']->db->query('TRUNCATE phpgw_access_log');
 
+       set_error_handler(array(syncml_logger::get_instance(), 'log_error'), 
E_ALL);
+
        if(!isset($_SERVER['CONTENT_TYPE']) ||
                $_SERVER['REQUEST_METHOD'] != 'POST')
        {
+               syncml_logger::get_instance()->log_data(
+                       "Unset content type or request method", 
$_SERVER['REQUEST_METHOD']);
                exit('I\'m a SyncML server (1)');
        }
 
        $post_input = implode("\r\n", file('php://input'));
 
-       file_put_contents('/tmp/'.$file_date.'-a.xml', $post_input);
+       file_put_contents(
+               sprintf("%s/%s-input.xml", SYNCML_LOG_DIR, $file_date),
+               $post_input . "\n");
+
        switch($_SERVER['CONTENT_TYPE'])
        {
                case 'application/vnd.syncml+wbxml':
@@ -83,15 +88,19 @@
        // execute and print everything
 
        $message->execute($response);
-
        $response->print_response();
-       file_put_contents('/tmp/'.$file_date.'-b.xml', ob_get_contents()."\n");
 
+       file_put_contents(
+               sprintf("%s/%s-output.xml", SYNCML_LOG_DIR, $file_date),
+               ob_get_contents() . "\n");
+
        if($_SERVER['CONTENT_TYPE'] == 'application/vnd.syncml+wbxml')
        {
                // remove the xml declaration tag
                $xml = substr(ob_get_clean(), 38);
+
                ob_start();
+
                // replace some bogus FPI values
                echo str_replace(
                        array(




_______________________________________________
phpGroupWare-cvs mailing list
phpGroupWare-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/phpgroupware-cvs

Reply via email to