PluginProbe
Packeta / 2.3.2
Packeta v2.3.2
2.3.2 2.3.1 trunk 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.3.0 1.3.1 1.3.2 1.4 1.4.1 1.4.2 1.4.3 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 All 56 releases
packeta / src / Packetery / Module / DiagnosticsLogger / DiagnosticsLogger.php

DiagnosticsLogger.php in Packeta 2.3.2, at src/Packetery/Module/DiagnosticsLogger/DiagnosticsLogger.php

103 lines 2.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Packetery\Module\DiagnosticsLogger;
4
5 use Packetery\Module\Framework\WpAdapter;
6 use Packetery\Module\MessageManager;
7 use Packetery\Module\Options\OptionNames;
8 use Packetery\Module\Options\Page;
9 use Packetery\Nette\Http;
10 use Packetery\Tracy\Debugger;
11 use Packetery\Tracy\ILogger;
12
13 class DiagnosticsLogger {
14
15 public const ACTION_DELETE_PACKETA_LOG = 'delete_packeta_log';
16
17 /**
18 * @var ILogger
19 */
20 private $logger;
21
22 /**
23 * @var Http\Request
24 */
25 private $httpRequest;
26
27 /**
28 * @var MessageManager
29 */
30 private $messageManager;
31
32 /**
33 * @var WpAdapter
34 */
35 private $wpAdapter;
36
37 public function __construct( Http\Request $httpRequest, MessageManager $messageManager, WpAdapter $wpAdapter ) {
38 $this->logger = Debugger::getLogger();
39 $this->httpRequest = $httpRequest;
40 $this->messageManager = $messageManager;
41 $this->wpAdapter = $wpAdapter;
42 }
43
44 /**
45 * @param string $logMessage
46 * @param array<string, mixed> $arguments
47 * @return void
48 */
49 public function log( string $logMessage, array $arguments ): void {
50 if ( $this->isLoggingEnabled() === false ) {
51 return;
52 }
53
54 $logMessage .= ' @ (PID: ' . getmypid() . ')';
55 $logMessage .= ' @ Arguments: ' . wp_json_encode( $arguments, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT );
56
57 $this->logger->log( $logMessage, 'packeta' );
58 }
59
60 public function deletePacketaLog(): void {
61 if (
62 $this->httpRequest->getQuery( 'page' ) !== Page::SLUG ||
63 $this->httpRequest->getQuery( 'action' ) !== self::ACTION_DELETE_PACKETA_LOG
64 ) {
65 return;
66 }
67
68 $file = $this->getPacketaLogPath();
69
70 if ( is_file( $file ) === false ) {
71 return;
72 }
73
74 $isDeleteSuccess = wp_delete_file( $file );
75
76 if ( $isDeleteSuccess === true ) {
77 $this->messageManager->flash_message(
78 $this->wpAdapter->__( 'Log file was deleted.' ),
79 MessageManager::TYPE_SUCCESS,
80 MessageManager::RENDERER_PACKETERY,
81 'plugin-options'
82 );
83 } else {
84 $this->messageManager->flash_message(
85 $this->wpAdapter->__( 'Log file could not be deleted.' ),
86 MessageManager::TYPE_ERROR,
87 MessageManager::RENDERER_PACKETERY,
88 'plugin-options'
89 );
90 }
91 }
92
93 private function isLoggingEnabled(): bool {
94 return (bool) $this->wpAdapter->getOption( OptionNames::PACKETERY_DIAGNOSTICS_LOGGING_ENABLED ) === true;
95 }
96
97 public function getPacketaLogPath(): string {
98 $logDir = Debugger::$logDirectory;
99
100 return $logDir . '/packeta.log';
101 }
102 }
103