Select Git revision
inc_config.js.dist
actionlog.class.php 14.17 KiB
<?php
require_once 'user.class.php';
/**
* class to log all project actions, ie. build, deploy etc.
*
* @author hahn
*/
class Actionlog {
private $_aLoglevels = array("info", "warning", "error", "success"); // array of valid loglevels
private $_sIP = false;
private $_sUser = false;
private $_sProject = false;
private $_sCreate = '
CREATE TABLE "logs" (
`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE ,
`time` DATETIME,
`loglevel` TEXT,
`ip` TEXT,
`user` TEXT,
`project` TEXT,
`action` TEXT,
`message` TEXT
)';
/*
private $_sCreateFUTURE = '
CREATE TABLE "logs" (
`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE ,
`time` DATETIME,
`time-start` DATETIME,
`loglevel` TEXT,
`ip` TEXT,
`user` TEXT,
`project` TEXT,
`action` TEXT,
`message` TEXT
)';
*/
/**
* constructor - sets internal environment variables and checks existence
* of the database
* @global array $aConfig settings
* @param string $sProject project ID
*/
public function __construct($sProject = false) {
global $aConfig;
if (!is_array($aConfig) || !array_key_exists("appRootDir", $aConfig)) {
die(__CLASS__ . "::".__FUNCTION__." ERROR: configuration with \$aConfig was not loaded.");
}
$this->_dbfile = $aConfig['dataDir'] . '/database/logs.db';
if (!file_exists($this->_dbfile)) {
$this->_createDb();
if (!file_exists($this->_dbfile)) {
die("ERROR: unable to create sqlite database " . $this->_dbfile);
}
}
$this->_sProject = $sProject;
$oUser=new user();
if ($oUser->getUsername()) {
$this->_sIP = $_SERVER["REMOTE_ADDR"];
$this->_sUser = $oUser->getUsername() . " (web)";
} else {
$this->_sIP = 'local';
$aUser=posix_getpwuid(posix_geteuid());
$this->_sUser = $aUser['name'] . " (system)";
}
}
/**