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)));
}
}