public function doConfigureProperties($properties, &$hierarchy) { // TODO: should search for file appenders instead define('FILE_APPENDER', 'log4php.appender.A1.file'); if (isset($properties[FILE_APPENDER])) { $logFilename = $properties[FILE_APPENDER]; $logFilename = str_replace('LOG_HOME', DIF_SYSTEM_ROOT . 'log', $logFilename); // make logfile available to everyone define('LOG_FILE', $logFilename); $properties[FILE_APPENDER] = $logFilename; } parent::doConfigureProperties($properties, $hierarchy); }
function setupLogging() { global $default; $oKTConfig =& KTConfig::getSingleton(); if (!defined('APP_NAME')) { define('APP_NAME', $oKTConfig->get('ui/appName', 'KnowledgeTree')); } define('KT_LOG4PHP_DIR', KT_DIR . '/thirdparty/apache-log4php/src/main/php' . DIRECTORY_SEPARATOR); define('LOG4PHP_CONFIGURATION', KT_DIR . '/config/ktlog.ini'); define('LOG4PHP_DEFAULT_INIT_OVERRIDE', true); require_once KT_LOG4PHP_DIR . 'LoggerManager.php'; require_once KT_LOG4PHP_DIR . 'LoggerPropertyConfigurator.php'; $configurator = new LoggerPropertyConfigurator(); $repository = LoggerManager::getLoggerRepository(); $properties = @parse_ini_file(LOG4PHP_CONFIGURATION); $properties['log4php.appender.default'] = 'LoggerAppenderDailyFile'; $properties['log4php.appender.default.layout'] = 'LoggerPatternLayout'; $properties['log4php.appender.default.layout.conversionPattern'] = '%d{Y-m-d | H:i:s} | %p | %t | %r | %X{userid} | %X{db} | %c | %M | %m%n'; $properties['log4php.appender.default.datePattern'] = 'Y-m-d'; $logDir = $oKTConfig->get('urls/logDirectory'); $properties['log4php.appender.default.file'] = $logDir . '/kt%s.' . KTUtil::running_user() . '.log.txt'; // get the log level set in the configuration settings to override the level set in ktlog.ini // for the default / main logging. Additional logging can be configured through the ini file $logLevel = $oKTConfig->get('KnowledgeTree/logLevel'); $properties['log4php.rootLogger'] = $logLevel . ', default'; session_start(); $configurator->doConfigureProperties($properties, $repository); $userId = isset($_SESSION['userID']) ? $_SESSION['userID'] : 'n/a'; LoggerMDC::put('userid', $userId); LoggerMDC::put('db', $oKTConfig->get('db/dbName')); $default->log = LoggerManager::getLogger('default'); $default->queryLog = LoggerManager::getLogger('sql'); $default->timerLog = LoggerManager::getLogger('timer'); $default->phpErrorLog = LoggerManager::getLogger('php'); }