From bb17fc30faca41ada4d66ffe69c9a973ab5f2d30 Mon Sep 17 00:00:00 2001
From: Olav Morken <olav.morken@uninett.no>
Date: Tue, 3 Jun 2008 05:19:09 +0000
Subject: [PATCH] Added possibility to log using the php error_log function.

git-svn-id: https://simplesamlphp.googlecode.com/svn/trunk@586 44740490-163a-0410-bde0-09ae8108e29a
---
 config-templates/config.php                   |  2 +-
 lib/SimpleSAML/Logger.php                     |  3 ++
 .../Logger/LoggingHandlerErrorLog.php         | 42 +++++++++++++++++++
 3 files changed, 46 insertions(+), 1 deletion(-)
 create mode 100644 lib/SimpleSAML/Logger/LoggingHandlerErrorLog.php

diff --git a/config-templates/config.php b/config-templates/config.php
index 9db884449..71ad261a7 100644
--- a/config-templates/config.php
+++ b/config-templates/config.php
@@ -84,7 +84,7 @@ $config = array (
 	 * 
 	 * Choose logging handler.
 	 * 
-	 * Options: [syslog,file]
+	 * Options: [syslog,file,errorlog]
 	 * 
 	 */
 	'logging.level'         => LOG_NOTICE,
diff --git a/lib/SimpleSAML/Logger.php b/lib/SimpleSAML/Logger.php
index b5c20d7df..530469afd 100644
--- a/lib/SimpleSAML/Logger.php
+++ b/lib/SimpleSAML/Logger.php
@@ -133,6 +133,9 @@ class SimpleSAML_Logger {
 		} elseif ($handler === 'file')  {
 			require_once((isset($SIMPLESAML_INCPREFIX)?$SIMPLESAML_INCPREFIX:'') . 'SimpleSAML/Logger/LoggingHandlerFile.php');
 			$sh = new SimpleSAML_Logger_LoggingHandlerFile();
+		} elseif ($handler === 'errorlog')  {
+			require_once((isset($SIMPLESAML_INCPREFIX)?$SIMPLESAML_INCPREFIX:'') . 'SimpleSAML/Logger/LoggingHandlerErrorLog.php');
+			$sh = new SimpleSAML_Logger_LoggingHandlerErrorLog();
 		} else {
 			throw new Exception('Invalid value for the [logging.handler] configuration option. Unknown handler: ' . $handler);
 		}
diff --git a/lib/SimpleSAML/Logger/LoggingHandlerErrorLog.php b/lib/SimpleSAML/Logger/LoggingHandlerErrorLog.php
new file mode 100644
index 000000000..bf52f864c
--- /dev/null
+++ b/lib/SimpleSAML/Logger/LoggingHandlerErrorLog.php
@@ -0,0 +1,42 @@
+<?php
+
+require_once((isset($SIMPLESAML_INCPREFIX)?$SIMPLESAML_INCPREFIX:'') . 'SimpleSAML/Logger.php');
+
+/**
+ * A class for logging to the default php error log.
+ *
+ * @author Lasse Birnbaum Jensen, SDU.
+ * @author Andreas Ă…kre Solberg, UNINETT AS. <andreas.solberg@uninett.no>
+ * @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(
+		LOG_EMERG => 'EMERG',
+		LOG_ALERT => 'ALERT',
+		LOG_CRIT => 'CRIT',
+		LOG_ERR => 'ERR',
+		LOG_WARNING => 'WARNING',
+		LOG_NOTICE => 'NOTICE',
+		LOG_INFO => 'INFO',
+		LOG_DEBUG => 'DEBUG',
+		);
+
+
+	function log_internal($level, $string) {
+		if(array_key_exists($level, self::$levelNames)) {
+			$levelName = self::$levelNames[$level];
+		} else {
+			$levelName = sprintf('UNKNOWN%d', $level);
+		}
+
+		error_log($levelName . ': ' . $string);
+	}
+}
+
+?>
\ No newline at end of file
-- 
GitLab