]> git.mxchange.org Git - friendica.git/blobdiff - include/text.php
Merge pull request #3463 from friendica/develop
[friendica.git] / include / text.php
index 2919989331f9e8775b467eda8d9487aeaef5fbec..c9babba940f8f06e31770f638407bb5a3839b169 100644 (file)
@@ -1,12 +1,13 @@
 <?php
 
+use Friendica\App;
+
 require_once("include/template_processor.php");
 require_once("include/friendica_smarty.php");
 require_once("include/Smilies.php");
 require_once("include/map.php");
 require_once("mod/proxy.php");
 
-
 if(! function_exists('replace_macros')) {
 /**
  * This is our template processor
@@ -753,6 +754,72 @@ function logger($msg, $level = 0) {
        $a->save_timestamp($stamp1, "file");
 }}
 
+/**
+ * @brief An alternative logger for development.
+ * Works largely as logger() but allows developers
+ * to isolate particular elements they are targetting
+ * personally without background noise
+ *
+ * log levels:
+ * LOGGER_NORMAL (default)
+ * LOGGER_TRACE
+ * LOGGER_DEBUG
+ * LOGGER_DATA
+ * LOGGER_ALL
+ *
+ * @global App $a
+ * @global dba $db
+ * @global array $LOGGER_LEVELS
+ * @param string $msg
+ * @param int $level
+ */
+
+function dlogger($msg, $level = 0) {
+       $a = get_app();
+       global $db;
+
+       // turn off logger in install mode
+       if (
+               $a->module == 'install'
+               || ! ($db && $db->connected)
+       ) {
+               return;
+       }
+
+       $logfile = get_config('system','dlogfile');
+
+       if (! $logfile) {
+               return;
+       }
+
+       if (count($LOGGER_LEVELS) == 0) {
+               foreach (get_defined_constants() as $k => $v) {
+                       if (substr($k, 0, 7) == "LOGGER_") {
+                               $LOGGER_LEVELS[$v] = substr($k, 7, 7);
+                       }
+               }
+       }
+
+       $process_id = session_id();
+
+       if ($process_id == '') {
+               $process_id = get_app()->process_id;
+       }
+
+       $callers = debug_backtrace();
+       $logline = sprintf("%s@\t%s:\t%s:\t%s\t%s\t%s\n",
+                       datetime_convert(),
+                       $process_id,
+                       basename($callers[0]['file']),
+                       $callers[0]['line'],
+                       $callers[1]['function'],
+                       $msg
+               );
+
+       $stamp1 = microtime(true);
+       @file_put_contents($logfile, $logline, FILE_APPEND);
+       $a->save_timestamp($stamp1, "file");
+}
 
 if(! function_exists('activity_match')) {
 /**