Log message object that wraps a log message and exposes its properties as well as the current request/user details to Yii 2 log targets.
The preferred way to install this extension is through composer.
Either run
composer require "sergeymakinen/yii2-log-message:^2.0"
or add
"sergeymakinen/yii2-log-message": "^2.0"
to the require section of your composer.json
file.
Let's take a look at the Slack log target code excerpt:
// ...
// $message is the sergeymakinen\yii\logmessage\Message class instance
$attachment = [
'fallback' => $this->encode($this->formatMessage($message->message)),
'title' => ucwords($message->level),
'fields' => [],
'text' => "```\n" . $this->encode($message->text . "\n```",
'footer' => static::className(),
'ts' => (int) round($message->timestamp),
'mrkdwn_in' => [
'fields',
'text',
],
];
if ($message->isConsoleRequest) {
$attachment['author_name'] = $message->commandLine;
} else {
$attachment['author_name'] = $attachment['author_link'] = $message->url;
}
if (isset($this->colors[$message->message[1]])) {
$attachment['color'] = $this->colors[$message->message[1]];
}
$this
->insertField($attachment, 'Level', $message->level, true, false)
->insertField($attachment, 'Category', $message->category, true)
->insertField($attachment, 'Prefix', $message->prefix, true)
->insertField($attachment, 'User IP', $message->userIp, true, false)
->insertField($attachment, 'User ID', $message->userId, true, false)
->insertField($attachment, 'Session ID', $message->sessionId, true)
->insertField($attachment, 'Stack Trace', $message->stackTrace, false);
// ...
Comments