]> 91.132.146.200 Git - insipid.git/commitdiff
better logging
authorBanana <mail@bananas-playground.net>
Sun, 19 Nov 2023 10:57:41 +0000 (11:57 +0100)
committerBanana <mail@bananas-playground.net>
Sun, 19 Nov 2023 10:57:41 +0000 (11:57 +0100)
ChangeLog
webroot/job/email-import.php
webroot/lib/category.class.php
webroot/lib/link.class.php
webroot/lib/management.class.php
webroot/lib/simple-imap.class.php
webroot/lib/snapshot.class.php
webroot/lib/summoner.class.php
webroot/lib/tag.class.php

index b443a9d696868e38924d232f3526d0db70f99d37..2f6126371bed68b8da42270cbacefbd3bcc49d9a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,80 +1,81 @@
 version 2.x.x - Griffin Chapel ()
+    + Better logging
 
 version 2.8.2 - Dragon Chapel (2023-09-14)
 
-       + Added LOGFILE and QUERY_DEBUG const to config.php. See update.txt for more details
-       + Updated DB table charsets. Needs manual DB updates. See update.txt file.
-       + Fixed URL handling at creation
-       + Improved DB queries.
-       + Add top 5 tag or category relation stats in the tag and category overview
-       + Updated license to GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007
-       + Updated error logging and try/catch for mysql
-       + Updated from https://github.com/druidfi/mysqldump-php to https://github.com/ifsnop/mysqldump-php since develop
-         resumed. Version mysqldump-php v2.11
-       + Updated https://github.com/mikehaertl/php-shellcommand to 1.7.0
+    + Added LOGFILE and QUERY_DEBUG const to config.php. See update.txt for more details
+    + Updated DB table charsets. Needs manual DB updates. See update.txt file.
+    + Fixed URL handling at creation
+    + Improved DB queries.
+    + Add top 5 tag or category relation stats in the tag and category overview
+    + Updated license to GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007
+    + Updated error logging and try/catch for mysql
+    + Updated from https://github.com/druidfi/mysqldump-php to https://github.com/ifsnop/mysqldump-php since develop
+      resumed. Version mysqldump-php v2.11
+    + Updated https://github.com/mikehaertl/php-shellcommand to 1.7.0
 
 version 2.8.1 - Deathwind Chapel (2022-12-31)
 
-       + Bugfix release
-       + Moved debug setting into config
-       + Updated shellcommand class and added the link to the github repo
-       + Fixed/Updated the creation of the webpage thumbnail using google pagespeed insights api
-       + Fixed search index update
-       + Fixed missing lang property
-       + Fixed xml ex- and import
-       + Fixed pagination and sort options in all links view
-       + Mysql dump replaced with https://github.com/druidfi/mysqldump-php
-       + Updated PHPMailer
-       + Removed WKHTMLTOPDF_USE and WKHTMLTOPDF_COMMAND from config. No support for a whole page screenshot yet.
+    + Bugfix release
+    + Moved debug setting into config
+    + Updated shellcommand class and added the link to the github repo
+    + Fixed/Updated the creation of the webpage thumbnail using google pagespeed insights api
+    + Fixed search index update
+    + Fixed missing lang property
+    + Fixed xml ex- and import
+    + Fixed pagination and sort options in all links view
+    + Mysql dump replaced with https://github.com/druidfi/mysqldump-php
+    + Updated PHPMailer
+    + Removed WKHTMLTOPDF_USE and WKHTMLTOPDF_COMMAND from config. No support for a whole page screenshot yet.
 
 version 2.8 - Wastelands (2022-12-10)
 
-       + Fixed documentation
-       + Fixed some PHP 8 defaults
-       + Fixed #17
+    + Fixed documentation
+    + Fixed some PHP 8 defaults
+    + Fixed #17
 
 version 2.7 - Sacred Grove (2022-06-12)
 
-       + Fixed bug #12. Missing translation key
-       + Adapted some new PHP code formatting
-       + Fixed some translations
-       + Updated bulma css
-       + Added random link page
-       + New syntax in config file. See update.txt for more details
-       + Fixed #13
-       + Fixed #15
-       + Fixed #14
-       + Fixed some small email importer notices and warnings
+    + Fixed bug #12. Missing translation key
+    + Adapted some new PHP code formatting
+    + Fixed some translations
+    + Updated bulma css
+    + Added random link page
+    + New syntax in config file. See update.txt for more details
+    + Fixed #13
+    + Fixed #15
+    + Fixed #14
+    + Fixed some small email importer notices and warnings
 
 version 2.6 - Hypostyle (2021-03-21)
 
-       + Fixed sql problems with Maria DB. Any_value is not supported there
-       + Fixed some query and data loading brain fucks..
-       + Fixed #10. URL is now considered when building search information.
-               Update search index from stats view to update all the exiting information
-       + Updated third party information in readme
-       + Fixed xml import xsd
-       + Added translation support. More information in translation.txt
+    + Fixed sql problems with Maria DB. Any_value is not supported there
+    + Fixed some query and data loading brain fucks..
+    + Fixed #10. URL is now considered when building search information.
+        Update search index from stats view to update all the exiting information
+    + Updated third party information in readme
+    + Fixed xml import xsd
+    + Added translation support. More information in translation.txt
 
 version 2.5.2 - Darkmere (2020-09-12)
 
-       + Fixed bug #8 It is possible to add empty tags and categories.
-               Special chars check done on server side. JS has problems with unicode.
-       + Fixed bug #7 Edit categories/tags. Rename and move
-       + Fixed feature #3 Reduce whitespace in frontend
+    + Fixed bug #8 It is possible to add empty tags and categories.
+        Special chars check done on server side. JS has problems with unicode.
+    + Fixed bug #7 Edit categories/tags. Rename and move
+    + Fixed feature #3 Reduce whitespace in frontend
 
 version 2.5.1 - Caves of Circe (2020-03-22)
 
-       + Bugfix release
+    + Bugfix release
 
 version 2.5 - Winnowing Hall (2020-03-21)
 
-       + Added a thumbnail by talking to Google page speed API
-               Planned was a full page snapshot, but only got the thumbnail.
-               Needs some more work with headless chrome.
-       + Instead you can now decide to make a full page screenshot
-               using wkhtmltoimage. See documentation about it.
-       + Improved documentation
+    + Added a thumbnail by talking to Google page speed API
+        Planned was a full page snapshot, but only got the thumbnail.
+        Needs some more work with headless chrome.
+    + Instead you can now decide to make a full page screenshot
+        using wkhtmltoimage. See documentation about it.
+    + Improved documentation
 
 version 2.4 - Seven Portals (2020-02-16)
 
index 9f064e67a7480acfb5079698c188bc48f9b739b8..cd7afdf9be11449d5e7e91a207da74341ed694f4 100644 (file)
@@ -122,7 +122,7 @@ try {
     if(DEBUG === true) $EmailReader->mailboxStatus();
 }
 catch (Exception $e) {
-    Summoner::sysLog('[ERROR] Email server connection failed: '.var_export($e->getMessage(),true));
+    Summoner::sysLog('[ERROR] Email server connection failed: '.$e->getMessage());
     exit();
 }
 
@@ -132,7 +132,7 @@ try {
     $emails = $EmailReader->messageWithValidSubject(EMAIL_MARKER);
 }
 catch (Exception $e) {
-    Summoner::sysLog('[ERROR] Can not process email messages: '.var_export($e->getMessage(),true));
+    Summoner::sysLog('[ERROR] Can not process email messages: '.$e->getMessage());
     exit();
 }
 
@@ -143,7 +143,7 @@ if(!empty($emails)) {
     foreach($emails as $emailId=>$emailData) {
         $links = EmailImportHelper::extractEmailLinks($emailData['body']);
                if(!empty($links)) {
-                       if(DEBUG === true) var_dump("Links in email:",$links);
+                       if(DEBUG === true) Summoner::sysLog("Links in email: ".Summoner::cleanForLog($links));
 
                        foreach($links as $linkstring) {
                                # defaults
@@ -170,8 +170,8 @@ if(!empty($emails)) {
                                $newdata['link'] = Summoner::addSchemeToURL($newdata['link']);
 
                                if (!filter_var($newdata['link'], FILTER_VALIDATE_URL)) {
-                                       error_log("ERROR Invalid URL: ".var_export($newdata['link'],true));
-                                       if(DEBUG === true) var_dump("Invalid URL:", $newdata['link']);
+                                       error_log("ERROR Invalid URL: ".Summoner::cleanForLog($newdata['link']));
+                                       if(DEBUG === true) Summoner::sysLog("Invalid URL: ".Summoner::cleanForLog($newdata['link']));
                                        continue;
                                }
 
@@ -190,12 +190,12 @@ if(!empty($emails)) {
                                }
                                else {
                                        error_log("WARN No valid title for link found: ".$newdata['link']);
-                                       if(DEBUG === true) var_dump("WARN No valid title for link found: ".var_export($newdata,true));
+                                       if(DEBUG === true) Summoner::sysLog("[WARN] No valid title for link found: ".Summoner::cleanForLog($newdata));
                                        array_push($invalidProcessedEmails, $emailData);
                                        continue;
                                }
 
-                               if(DEBUG === true) var_dump("New data", $newdata);
+                               if(DEBUG === true) Summoner::sysLog("New data ".Summoner::cleanForLog($newdata));
 
                 $linkObj = new Link($DB);
                 $linkID = false;
@@ -207,7 +207,7 @@ if(!empty($emails)) {
 
                 if(!empty($existing) && isset($existing['id'])) {
                     $linkID = $existing['id'];
-                    Summoner::sysLog('[INFO] Updating existing link with tag or category '.$newdata['link']);
+                    Summoner::sysLog('[INFO] Updating existing link with tag or category '.Summoner::cleanForLog($newdata['link']));
                 }
                 else {
                     $linkObj = new Link($DB);
@@ -223,12 +223,12 @@ if(!empty($emails)) {
                                                        'catArr' => $newdata['catArr']
                         ), true);
                     } catch (Exception $e) {
-                        $_m = "WARN Can not create new link into DB." . $e->getMessage();
+                        $_m = "[WARN] Can not create new link into DB." . $e->getMessage();
                         Summoner::sysLog($_m);
                         $emailData['importmessage'] = $_m;
                         array_push($invalidProcessedEmails, $emailData);
-                        if (DEBUG === true) var_dump($_m);
-                        if (DEBUG === true) var_dump($newdata);
+                        if (DEBUG === true) Summoner::sysLog($_m);
+                        if (DEBUG === true) Summoner::sysLog(Summoner::cleanForLog($newdata));
                         continue;
                     }
                 }
index f1f74d3f89516f7f122fbbce1e3946767ca19240..5370547f8973ba03a85620703b500e86882ba654 100644 (file)
@@ -226,7 +226,7 @@ class Category {
                 $this->DB->commit();
                 $ret = true;
             } catch (Exception $e) {
-                Summoner::sysLog('ERROR Failed to remove category: '.var_export($e->getMessage(),true));
+                Summoner::sysLog('ERROR Failed to remove category: '.$e->getMessage());
                 $this->DB->rollback();
             }
         }
index f4bb220f20960ec9a05464206722fdca2d97f8d9..e15e17ed7e1099e2a9119f78a335b1aeb9fc258b 100644 (file)
@@ -219,7 +219,7 @@ class Link {
                 $ret = $this->DB->insert_id;
             }
             else {
-                Summoner::sysLog('ERROR Failed to create link: '.var_export($data,true));
+                Summoner::sysLog('ERROR Failed to create link: '.Summoner::cleanForLog($data));
             }
         } catch (Exception $e) {
             Summoner::sysLog("[ERROR] ".__METHOD__." mysql catch: ".$e->getMessage());
@@ -333,7 +333,7 @@ class Link {
                             $snap = new Snapshot();
                             $do = $snap->doSnapshot($this->_data['link'], $snapshot);
                             if(empty($do)) {
-                                Summoner::sysLog('ERROR Failed to create snapshot: '.var_export($data,true));
+                                Summoner::sysLog('ERROR Failed to create snapshot: '.Summoner::cleanForLog($data));
                             }
                         }
                     } elseif ($data['snapshot'] === false) {
@@ -352,7 +352,7 @@ class Link {
                             $snap = new Snapshot();
                             $do = $snap->wholePageSnapshot($this->_data['link'], $pagescreenshot);
                             if(!empty($do)) {
-                                Summoner::sysLog('ERROR Failed to create snapshot: '.var_export($data,true));
+                                Summoner::sysLog('ERROR Failed to create snapshot: '.Summoner::cleanForLog($data));
                             }
                         }
                     } elseif ($data['pagescreenshot'] === false) {
@@ -365,7 +365,7 @@ class Link {
                 $ret = true;
             } else {
                 $this->DB->rollback();
-                Summoner::sysLog('ERROR Failed to update link: '.var_export($data,true));
+                Summoner::sysLog('ERROR Failed to update link: '.Summoner::cleanForLog($data));
             }
 
         }
index bdc05a3769d7fc6ff25c215290542ae9a5ccaef4..315638b789f1e78599924f71ad89a0ed82039a11 100644 (file)
@@ -918,7 +918,7 @@ class Management {
 
         if(!empty($data) && isset($data['link'])) {
             if(DEBUG) {
-                Summoner::sysLog("DEBUG Using data: ".var_export($data, true));
+                Summoner::sysLog("DEBUG Using data: ".Summoner::cleanForLog($data));
             }
             require_once 'lib/import-export.class.php';
             $ImEx = new ImportExport();
index 8b9a914498982a20f535be1c3c7843facb5c6ab1..9a486ac40c066c4d4bf7ad0af6f3bf680f7db59d 100644 (file)
@@ -160,7 +160,7 @@ class SimpleImap {
                     echo $val->attributes . "<br />\n";
                 }
             } else {
-                Summoner::sysLog("ERROR imap_getmailboxes failed: ".var_export(imap_last_error()));
+                Summoner::sysLog("ERROR imap_getmailboxes failed: ".Summoner::cleanForLog(imap_last_error()));
             }
         }
     }
index 2e720ad639ae6621bdcef62e1fed6b157d2b5719..46b52809cc4f42ef0cc3b5a70824febe92a8d23e 100644 (file)
@@ -63,10 +63,10 @@ class Snapshot {
                 Summoner::sysLog("[DEBUG] try to save to $filename with $this->_googlePageSpeed for $url");
             }
             $theCall = Summoner::curlCall($this->_googlePageSpeed.urlencode($url).'&screenshot=true');
-            if(!empty($theCall)) {
-                $jsonData = json_decode($theCall,true);
+            if(!empty($theCall['status'])) {
+                $jsonData = json_decode($theCall['message'],true);
                 if(DEBUG) {
-                    Summoner::sysLog("[DEBUG] Call result data: ".var_export($jsonData, true));
+                    Summoner::sysLog("[DEBUG] Call result data: ".Summoner::cleanForLog($jsonData));
                 }
                 if(!empty($jsonData) && isset($jsonData['lighthouseResult']['audits']['full-page-screenshot']['details']['screenshot']['data'])) {
                     $imageData = $jsonData['lighthouseResult']['audits']['full-page-screenshot']['details']['screenshot']['data'];
@@ -79,10 +79,10 @@ class Snapshot {
                     fclose($source);
                     fclose($destination);
                 } elseif(DEBUG) {
-                    Summoner::sysLog("[DEBUG] invalid json data. Path ['lighthouseResult']['audits']['full-page-screenshot']['details']['screenshot']['data'] not found in : ".var_export($jsonData, true));
+                    Summoner::sysLog("[DEBUG] invalid json data. Path ['lighthouseResult']['audits']['full-page-screenshot']['details']['screenshot']['data'] not found in : ".Summoner::cleanForLog($jsonData));
                 }
             } elseif(DEBUG) {
-                Summoner::sysLog("[DEBUG] curl call failed");
+                Summoner::sysLog("[DEBUG] curl call failed ".Summoner::cleanForLog($theCall));
             }
         }
 
index 3b1f2d43d5844d10cab5ec9bdf8c8ac5820e6672..fa9b2929a9f92773f7dada4ca5f354d548398979 100644 (file)
@@ -134,10 +134,10 @@ class Summoner {
      *
      * @param string $url The request url
      * @param int $port
-     * @return string
+     * @return array
      */
-    static function curlCall(string $url, int $port=0): string {
-        $ret = '';
+    static function curlCall(string $url, int $port=0): array {
+        $ret = array('status' => false, 'message' => 'Unknown');
 
         $ch = curl_init();
 
@@ -159,10 +159,11 @@ class Summoner {
         $do = curl_exec($ch);
 
         if(is_string($do) === true) {
-            $ret = $do;
+            $ret['status'] = true;
+            $ret['message'] = $do;
         }
         else {
-            self::sysLog('ERROR '.var_export(curl_error($ch),true));
+            $ret['message'] = curl_error($ch);
         }
 
         curl_close($ch);
@@ -231,8 +232,8 @@ class Summoner {
 
         if(self::validate($url,'url')) {
             $data = self::curlCall($url);
-            if(!empty($data)) {
-                $ret = self::socialMetaInfos($data);
+            if(!empty($data['status'])) {
+                $ret = self::socialMetaInfos($data['message']);
             }
         }
 
@@ -565,10 +566,10 @@ class Summoner {
     /**
      * Make the input more safe for logging
      *
-     * @param string $input The string to be made more safe
+     * @param mixed $input The string to be made more safe
      * @return string
      */
-    static function cleanForLog(string $input): string {
+    static function cleanForLog(mixed $input): string {
         $input = var_export($input, true);
         $input = preg_replace( "/[\t\n\r]/", " ", $input);
         return addcslashes($input, "\000..\037\177..\377\\");
index c8b35c9c4d0d0dc5b0e7e94d8bae330d9a74fdb9..f0b2a0974889c9d291e41220e5c44dc4cb2f7091 100644 (file)
@@ -231,7 +231,7 @@ class Tag {
                 $this->DB->query($queryStr);
                 $this->DB->commit();
             } catch (Exception $e) {
-                Summoner::sysLog('[ERROR] Failed to remove tag: '.var_export($e->getMessage(),true));
+                Summoner::sysLog('[ERROR] Failed to remove tag: '.$e->getMessage());
 
                 $this->DB->rollback();
             }