-
Notifications
You must be signed in to change notification settings - Fork 117
Expand file tree
/
Copy pathLoggerEntry.php
More file actions
99 lines (89 loc) · 2.97 KB
/
Copy pathLoggerEntry.php
File metadata and controls
99 lines (89 loc) · 2.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
<?php
/**
* @file
* Contains \Drupal\rules\Plugin\DataType\LoggerEntry.
*/
namespace Drupal\rules\Plugin\DataType;
use Drupal\Core\Logger\LogMessageParserInterface;
use Drupal\Core\TypedData\Plugin\DataType\Map;
use Drupal\Core\TypedData\TypedData;
use Drupal\Component\Utility\Random;
use Drupal\Core\Field\FieldDefinitionInterface;
use Drupal\Core\Field\FieldItemBase;
use Drupal\Core\Field\FieldStorageDefinitionInterface;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\TypedData\DataDefinition;
use Drupal\Core\TypedData\MapDataDefinition;
use Drupal\Core\Url;
use Drupal\link\LinkItemInterface;
/**
* The logger entry data type.
*
* Represents a log entry that is created from system log messages.
*
* @DataType(
* id = "logger_entry",
* label = @Translation("Logger entry"),
* definition_class = "\Drupal\rules\TypedData\LoggerEntryDataDefinition"
* )
*/
class LoggerEntry extends Map {
/**
* The message's placeholders parser.
*
* @var \Drupal\Core\Logger\LogMessageParserInterface
*/
protected $parser;
/**
* {@inheritdoc}
*
* @todo: create a TypedData logger-entry object: https://www.drupal.org/node/2625238
*/
public function log($level, $message, array $context = array(), LogMessageParserInterface $parser) {
$this->parser = $parser;
// Remove any backtraces since they may contain an unserializable variable.
unset($context['backtrace']);
// Convert PSR3-style messages to SafeMarkup::format() style, so they can be
// translated too in runtime.
$message_placeholders = $this->parser->parseMessagePlaceholders($message, $context);
$logger_entry = array(
'uid' => $context['uid'],
'type' => $context['channel'],
'message' => $message,
'variables' => $message_placeholders,
'severity' => $level,
'link' => $context['link'],
'location' => $context['request_uri'],
'referer' => $context['referer'],
'hostname' => $context['ip'],
'timestamp' => $context['timestamp'],
);
$this->setValue($logger_entry);
}
// // Plain copy from \Drupal\rules\Logger\RulesLog
// protected function createLoggerEntryFromContext($log) {
// list($level, $message, $context) = $log;
//
// // Remove any backtraces since they may contain an unserializable variable.
// unset($context['backtrace']);
//
// // Convert PSR3-style messages to SafeMarkup::format() style, so they can be
// // translated too in runtime.
// $message_placeholders = $this->parser->parseMessagePlaceholders($message, $context);
//
// $logger_entry = array(
// 'uid' => $context['uid'],
// 'type' => $context['channel'],
// 'message' => $message,
// 'variables' => $message_placeholders,
// 'severity' => $level,
// 'link' => $context['link'],
// 'location' => $context['request_uri'],
// 'referer' => $context['referer'],
// 'hostname' => $context['ip'],
// 'timestamp' => $context['timestamp'],
// );
//
// return $logger_entry;
// }
}