summaryrefslogtreecommitdiff
path: root/system/libraries/drivers/Log/Syslog.php
blob: 5da5d255421df8e11c1927fab1f0b5459df6cd49 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php defined('SYSPATH') OR die('No direct access allowed.');
/**
 * Log API driver.
 *
 * @package    Kohana_Log
 * @author     Kohana Team
 * @copyright  (c) 2007-2009 Kohana Team
 * @license    http://kohanaphp.com/license
 */
class Log_Syslog_Driver extends Log_Driver {

	protected $syslog_levels = array('error' => LOG_ERR,
	                                 'alert' => LOG_WARNING,
	                                 'info'  => LOG_INFO,
	                                 'debug' => LOG_DEBUG);

	public function save(array $messages)
	{
		// Open the connection to syslog
		openlog($this->config['ident'], LOG_CONS, LOG_USER);

		do
		{
			// Load the next message
			list ($date, $type, $text) = array_shift($messages);

			syslog($this->syslog_levels[$type], $text);
		}
		while ( ! empty($messages));

		// Close connection to syslog
		closelog();
	}
}