Skip to content
This repository has been archived by the owner on Dec 4, 2022. It is now read-only.

Log message object for Yii 2 log targets

License

Notifications You must be signed in to change notification settings

sergeymakinen/yii2-log-message

Repository files navigation

Yii 2 log message object

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.

Code Quality Build Status Code Coverage SensioLabsInsight

Packagist Version Total Downloads Software License

Installation

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.

Usage

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);
// ...