-
Olav Morken authored
git-svn-id: https://simplesamlphp.googlecode.com/svn/trunk@1665 44740490-163a-0410-bde0-09ae8108e29a
Olav Morken authoredgit-svn-id: https://simplesamlphp.googlecode.com/svn/trunk@1665 44740490-163a-0410-bde0-09ae8108e29a
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
LoggingHandlerFile.php 2.09 KiB
<?php
/**
* A class for logging
*
* @author Lasse Birnbaum Jensen, SDU.
* @author Andreas kre Solberg, UNINETT AS. <andreas.solberg@uninett.no>
* @package simpleSAMLphp
* @version $ID$
*/
class SimpleSAML_Logger_LoggingHandlerFile implements SimpleSAML_Logger_LoggingHandler {
/**
* This array contains the mappings from syslog loglevel to names. Copied
* more or less directly from SimpleSAML_Logger_LoggingHandlerErrorLog.
*/
private static $levelNames = array(
LOG_EMERG => 'EMERGENCY',
LOG_ALERT => 'ALERT',
LOG_CRIT => 'CRITICAL',
LOG_ERR => 'ERROR',
LOG_WARNING => 'WARNING',
LOG_NOTICE => 'NOTICE',
LOG_INFO => 'INFO',
LOG_DEBUG => 'DEBUG',
);
private $logFile = null;
private $processname = null;
function __construct() {
$config = SimpleSAML_Configuration::getInstance();
assert($config instanceof SimpleSAML_Configuration);
/* Get the metadata handler option from the configuration. */
$this->logFile = $config->getPathValue('loggingdir', 'log/').$config->getString('logging.logfile', 'simplesamlphp.log');
$this->processname = $config->getString('logging.processname','simpleSAMLphp');
if (@file_exists($this->logFile)) {
if (!@is_writeable($this->logFile)) throw new Exception("Could not write to logfile: ".$this->logFile);
}
else
{
if (!@touch($this->logFile)) throw new Exception("Could not create logfile: ".$this->logFile." Loggingdir is not writeable for the webserver user.");
}
}
function log_internal($level, $string) {
if ($this->logFile != null) {
// Set human-readable log level. Copied from SimpleSAML_Logger_LoggingHandlerErrorLog.
if(array_key_exists($level, self::$levelNames))
$levelName = self::$levelNames[$level];
else
$levelName = sprintf('UNKNOWN%d', $level);
$line = sprintf("%s %s %s %s\n", strftime("%b %d %H:%M:%S"), $this->processname, $levelName, $string);
file_put_contents($this->logFile, $line, FILE_APPEND);
}
}
}
?>