code: public function getMessagePrefix($message)
      {
          if ($this->prefix !== null) {
              return call_user_func($this->prefix, $message);
          }
  
          if (Yii::$app === null) {
              return '';
          }
  
          $request = Yii::$app->getRequest();
          $ip = $request instanceof Request ? $request->getUserIP() : '-';
  
          /* @var $user \yii\web\User */
          $user = Yii::$app->has('user', true) ? Yii::$app->get('user') : null;
          if ($user && ($identity = $user->getIdentity(false))) {
              $userID = $identity->getId();
          } else {
              $userID = '-';
          }
  
          /* @var $session \yii\web\Session */
          $session = Yii::$app->has('session', true) ? Yii::$app->get('session') : null;
          $sessionID = $session && $session->getIsActive() ? $session->getId() : '-';
  
          return "[$ip][$userID][$sessionID]";
      }
docs: Returns a string to be prefixed to the given message.
  If [[prefix]] is configured it will return the result of the callback.
  The default implementation will return user IP, user ID and session ID as a prefix.
  @param array $message the message being exported.
  The message structure follows that in [[Logger::messages]].
  @return string the prefix string