]> git.mxchange.org Git - friendica.git/blob - src/Core/Logger/Factory/AbstractLoggerTypeFactory.php
Use the owner, not the author
[friendica.git] / src / Core / Logger / Factory / AbstractLoggerTypeFactory.php
1 <?php
2 /**
3  * @copyright Copyright (C) 2010-2023, the Friendica project
4  *
5  * @license GNU AGPL version 3 or any later version
6  *
7  * This program is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU Affero General Public License as
9  * published by the Free Software Foundation, either version 3 of the
10  * License, or (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU Affero General Public License for more details.
16  *
17  * You should have received a copy of the GNU Affero General Public License
18  * along with this program.  If not, see <https://www.gnu.org/licenses/>.
19  *
20  */
21
22 namespace Friendica\Core\Logger\Factory;
23
24 use Friendica\Core\Logger\Capability\IHaveCallIntrospections;
25 use Psr\Log\LogLevel;
26
27 /**
28  * Abstract class for creating logger types, which includes common necessary logic/content
29  */
30 abstract class AbstractLoggerTypeFactory
31 {
32         /** @var string */
33         protected $channel;
34         /** @var IHaveCallIntrospections */
35         protected $introspection;
36
37         /**
38          * @param string $channel The channel for the logger
39          */
40         public function __construct(IHaveCallIntrospections $introspection, string $channel)
41         {
42                 $this->channel       = $channel;
43                 $this->introspection = $introspection;
44         }
45
46         /**
47          * Mapping a legacy level to the PSR-3 compliant levels
48          *
49          * @see https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md#5-psrlogloglevel
50          *
51          * @param string $level the level to be mapped
52          *
53          * @return string the PSR-3 compliant level
54          */
55         protected static function mapLegacyConfigDebugLevel(string $level): string
56         {
57                 switch ($level) {
58                         // legacy WARNING
59                         case "0":
60                                 return LogLevel::ERROR;
61                         // legacy INFO
62                         case "1":
63                                 return LogLevel::WARNING;
64                         // legacy TRACE
65                         case "2":
66                                 return LogLevel::NOTICE;
67                         // legacy DEBUG
68                         case "3":
69                                 return LogLevel::INFO;
70                         // legacy DATA
71                         case "4":
72                         // legacy ALL
73                         case "5":
74                                 return LogLevel::DEBUG;
75                         // default if nothing set
76                         default:
77                                 return $level;
78                 }
79         }
80 }