* @author Olav Morken, UNINETT AS. * @package SimpleSAMLphp * @version $ID$ */ class SimpleSAML_Logger_LoggingHandlerErrorLog implements SimpleSAML_Logger_LoggingHandler { /** * This array contains the mappings from syslog loglevel to names. */ private static $levelNames = array( SimpleSAML\Logger::EMERG => 'EMERG', SimpleSAML\Logger::ALERT => 'ALERT', SimpleSAML\Logger::CRIT => 'CRIT', SimpleSAML\Logger::ERR => 'ERR', SimpleSAML\Logger::WARNING => 'WARNING', SimpleSAML\Logger::NOTICE => 'NOTICE', SimpleSAML\Logger::INFO => 'INFO', SimpleSAML\Logger::DEBUG => 'DEBUG', ); private $format; /** * Set the format desired for the logs. * * @param string $format The format used for logs. */ public function setLogFormat($format) { $this->format = $format; } /** * Log a message to syslog. * * @param int $level The log level. * @param string $string The formatted message to log. */ public function log($level, $string) { $config = SimpleSAML_Configuration::getInstance(); assert($config instanceof SimpleSAML_Configuration); $processname = $config->getString('logging.processname', 'SimpleSAMLphp'); if (array_key_exists($level, self::$levelNames)) { $levelName = self::$levelNames[$level]; } else { $levelName = sprintf('UNKNOWN%d', $level); } $formats = array('%process', '%level'); $replacements = array($processname, $levelName); $string = str_replace($formats, $replacements, $string); $string = preg_replace('/%\w+(\{[^\}]+\})?/', '', $string); $string = trim($string); error_log($string); } }