]> git.mxchange.org Git - friendica.git/blobdiff - src/Core/Logger.php
Add Monolog
[friendica.git] / src / Core / Logger.php
index f9cb8cde01f254d6e5ee0d540f7cb5ac0892cd9b..3d5d9fb50a8bb3002a657f1c1786d2f351d76aca 100644 (file)
@@ -4,23 +4,72 @@
  */
 namespace Friendica\Core;
 
+use Friendica\App;
 use Friendica\BaseObject;
-use Friendica\Core\Config;
+use Monolog;
 use Friendica\Util\DateTimeFormat;
-use ReflectionClass;
 
 /**
  * @brief Logger functions
  */
 class Logger extends BaseObject
 {
+       /**
+        * Creates a basic Monolog instance for logging.
+        *
+        * @param string $application the current application name (index, daemon, ...)
+        *
+        * @return Monolog\Logger The Logger instance
+        */
+       public static function create($application)
+       {
+               $logger = new Monolog\Logger($application);
+
+               $logger->pushProcessor(new Monolog\Processor\IntrospectionProcessor());
+               $logger->pushProcessor(new Monolog\Processor\ProcessIdProcessor());
+               $logger->pushProcessor(new Monolog\Processor\WebProcessor());
+               $logger->pushProcessor(new App\FriendicaLoggerProcessor());
+
+               return $logger;
+       }
+
+       /**
+        * Sets the default Logging handler for this instance.
+        * Can be combined with other handlers too if necessary.
+        *
+        * @param Monolog\Logger $logger The Logger instance of this Application
+        * @param App            $app    The Friendica Application
+        */
+       public static function loadDefaultHandler($logger, $app)
+       {
+               foreach ($logger->getProcessors() as $processor) {
+                       if ($processor instanceof App\FriendicaLoggerProcessor) {
+                               $processor->setProcessId($app->process_id);
+                       }
+               }
+
+               $debugging = Config::get('system', 'debugging');
+               $logfile   = Config::get('system', 'logfile');
+               $loglevel = intval(Config::get('system', 'loglevel'));
+
+               if (!$debugging || !$logfile) {
+                       return;
+               }
+
+               $fileHandler = new Monolog\Handler\StreamHandler($logfile . ".1", $loglevel);
+               $logger->pushHandler($fileHandler);
+       }
+
     // Log levels:
-    const WARNING = 0;
-    const INFO = 1;
-    const TRACE = 2;
-    const DEBUG = 3;
-    const DATA = 4;
-    const ALL = 5;
+       //EMERGENCY
+       //ALERT
+       //CRITICAL
+    const WARNING = 0; //ERROR
+    const INFO = 1; //WARNING
+    const TRACE = 2; //NOTICE(default)
+    const DEBUG = 3; //INFO
+    const DATA = 4; //INFO
+    const ALL = 5; //DEBUG
 
     public static $levels = [
         self::WARNING => 'Warning',
@@ -36,6 +85,8 @@ class Logger extends BaseObject
      *
      * @param string $msg
      * @param int $level
+        *
+        * @deprecated since 2019.03 - use App->getLogger() instead
      */
     public static function log($msg, $level = self::INFO)
     {
@@ -90,6 +141,8 @@ class Logger extends BaseObject
      * personally without background noise
      *
      * @param string $msg
+        *
+        * * @deprecated since 2019.03 - never used
      */
     public static function devLog($msg)
     {