Novell Home

Syslog() To a MYSQL Database

From Developer Community

This sample shows how I created a function to handle syslog in existing scripts.

Sample Code

<?php
//This script MUST be called from an existing script using something
//like:  require ('syslog.php');

//This code has had very limited testing.  As I am a newbie I'm sure others
//could clean this up alot.
//It is working with scripts I have taken from hotscripts.com, so I hope it will
//help you.

//To use this script you must create a table in your database called logs
//Here is the sql I used in phpMyAdmin to create the table:
//CREATE TABLE `logs` (`DT` DATETIME NOT NULL ,`priority` INT NOT NULL ,`message` VARCHAR( 255 ) NOT NULL ,INDEX ( `DT` , `priority` ));

function syslog($priority,$message){

$db_user = 'root';  //Database user name
$db_password = '';  //Database password
$db_name = 'test';  //Database name

$db = @mysql_connect("localhost",$db_user,$db_password) or die("Couldn't Connect to SQL");
$db = @mysql_select_db($db_name, $db);
//LOG_DEBUG and the rest were taken from the PHP documentation searching for syslog
switch ($priority) {
    case 'LOG_DEBUG':
				$sql = "INSERT INTO `logs` ( `DT` , `priority` , `message` ) VALUES ( NOW( ) , '0', '$message');";
        mysql_query($sql);
      	mysql_close();
        break;
    case 'LOG_INFO':
				$sql = "INSERT INTO `logs` ( `DT` , `priority` , `message` ) VALUES ( NOW( ) , '1', '$message');";
        mysql_query($sql);
      	mysql_close();
        break;
    case 'LOG_NOTICE':
				$sql = "INSERT INTO `logs` ( `DT` , `priority` , `message` ) VALUES ( NOW( ) , '2', '$message');";
        mysql_query($sql);
      	mysql_close();
        break;
    case 'LOG_WARNING':
				$sql = "INSERT INTO `logs` ( `DT` , `priority` , `message` ) VALUES ( NOW( ) , '3', '$message');";
        mysql_query($sql);
      	mysql_close();
        break;
    case 'LOG_ERR':
				$sql = "INSERT INTO `logs` ( `DT` , `priority` , `message` ) VALUES ( NOW( ) , '4', '$message');";
        mysql_query($sql);
      	mysql_close();
        break;
    case 'LOG_CRIT':
				$sql = "INSERT INTO `logs` ( `DT` , `priority` , `message` ) VALUES ( NOW( ) , '5', '$message');";
        mysql_query($sql);
      	mysql_close();
        break;
    case 'LOG_ALERT':
				$sql = "INSERT INTO `logs` ( `DT` , `priority` , `message` ) VALUES ( NOW( ) , '6', '$message');";
        mysql_query($sql);
      	mysql_close();
        break;
    case 'LOG_EMERG':
				$sql = "INSERT INTO `logs` ( `DT` , `priority` , `message` ) VALUES ( NOW( ) , '7', '$message');";
        mysql_query($sql);
      	mysql_close();
        break;
}   //end switch
}   //end function syslog
?>

--David Benjamin

Novell® Making IT Work As One

© 2009 Novell, Inc. All Rights Reserved.