[!!!][FEATURE] Introduce PSR-3 Logging
[Packages/TYPO3.CMS.git] / typo3 / sysext / adminpanel / Classes / Modules / DebugModule.php
1 <?php
2 declare(strict_types = 1);
3
4 namespace TYPO3\CMS\Adminpanel\Modules;
5
6 /*
7 * This file is part of the TYPO3 CMS project.
8 *
9 * It is free software; you can redistribute it and/or modify it under
10 * the terms of the GNU General Public License, either version 2
11 * of the License, or any later version.
12 *
13 * For the full copyright and license information, please read the
14 * LICENSE.txt file that was distributed with this source code.
15 *
16 * The TYPO3 project - inspiring people to share!
17 */
18
19 use TYPO3\CMS\Adminpanel\Log\InMemoryLogWriter;
20 use TYPO3\CMS\Adminpanel\ModuleApi\AbstractModule;
21 use TYPO3\CMS\Adminpanel\ModuleApi\ShortInfoProviderInterface;
22 use TYPO3\CMS\Core\Log\LogLevel;
23 use TYPO3\CMS\Core\Log\LogRecord;
24
25 /**
26 * Debug Module of the AdminPanel
27 */
28 class DebugModule extends AbstractModule implements ShortInfoProviderInterface
29 {
30
31 /**
32 * @inheritdoc
33 */
34 public function getIdentifier(): string
35 {
36 return 'debug';
37 }
38
39 /**
40 * @inheritdoc
41 */
42 public function getIconIdentifier(): string
43 {
44 return 'actions-debug';
45 }
46
47 /**
48 * @inheritdoc
49 */
50 public function getLabel(): string
51 {
52 return $this->getLanguageService()->sL(
53 'LLL:EXT:adminpanel/Resources/Private/Language/locallang_debug.xlf:module.label'
54 );
55 }
56
57 public function getShortInfo(): string
58 {
59 $errorsAndWarnings = array_filter(InMemoryLogWriter::$log, function (LogRecord $entry) {
60 return LogLevel::normalizeLevel($entry->getLevel()) <= 4;
61 });
62 return sprintf($this->getLanguageService()->sL(
63 'LLL:EXT:adminpanel/Resources/Private/Language/locallang_debug.xlf:module.shortinfo'
64 ), count($errorsAndWarnings));
65 }
66 }