Scalr\Logger::log PHP Method

log() public method

Raw log message
public log ( integer | string $level, string $message, string $args = null )
$level integer | string The log level
$message string The message that accepts format specification
$args string optional An arguments
    public function log($level, $message, $args = null)
    {
        if (!is_numeric($level) && defined('static::LEVEL_' . $level)) {
            //Translates string log level to integer
            $level = constant('static::LEVEL_' . $level);
        }
        if ($message instanceof FarmLogMessage) {
            $time = time();
            $tm = date('YmdH');
            $hash = md5(":{$message->Message}:{$message->FarmID}:{$this->name}:{$tm}", true);
            $logLevelName = self::$logLevelName[$level];
            try {
                \Scalr::getDb()->Execute("\n                    INSERT INTO logentries SET\n                        `id` = ?,\n                        `serverid` = ?,\n                        `message` = ?,\n                        `severity` = ?,\n                        `time` = ?,\n                        `source` = ?,\n                        `farmid` = ?,\n                        `env_id` = ?,\n                        `farm_role_id` = ?\n                    ON DUPLICATE KEY UPDATE cnt = cnt + 1, `time` = ?", [$hash, $message->ServerID, $message->Message, self::$severities[$logLevelName], $time, $this->name, $message->FarmID, $message->envId, $message->farmRoleId, $time]);
            } catch (\Exception $e) {
                trigger_error($e->getMessage(), E_USER_WARNING);
            }
            \Scalr::getContainer()->userlogger->log('user.log', $message, $logLevelName);
            $message = "[FarmID: {$message->FarmID}] {$message->Message}";
        }
        if (stripos(PHP_SAPI, "cli") === false) {
            return;
        }
        if ($level >= $this->level) {
            $args = array_slice(func_get_args(), 2);
            fwrite(STDOUT, sprintf("%s - %s@%d - %s - %s\n", date($this->dateFormat), !empty($this->name) ? $this->name : '', posix_getpid(), isset(static::$logLevelName[$level]) ? static::$logLevelName[$level] : $level, empty($args) ? $message : vsprintf($message, $args)));
        }
    }