nextcloud/lib/log.php

68 lines
1.6 KiB
PHP
Raw Normal View History

2011-10-16 22:49:14 +04:00
<?php
/**
2012-03-31 01:15:48 +04:00
* Copyright (c) 2012 Bart Visscher <bartv@thisnet.nl>
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
2011-10-16 22:49:14 +04:00
*/
/**
2012-03-31 01:15:48 +04:00
* logging utilities
2011-10-16 22:49:14 +04:00
*
2012-03-31 01:15:48 +04:00
* Log is saved by default at data/owncloud.log using OC_Log_Owncloud.
* Selecting other backend is done with a config option 'log_type'.
2011-10-16 22:49:14 +04:00
*/
2012-03-31 01:15:48 +04:00
class OC_Log {
2011-10-16 22:49:14 +04:00
const DEBUG=0;
const INFO=1;
const WARN=2;
const ERROR=3;
const FATAL=4;
2012-10-12 17:45:05 +04:00
static public $enabled = true;
2012-03-31 01:15:48 +04:00
static protected $class = null;
2011-10-16 22:49:14 +04:00
/**
* write a message in the log
* @param string $app
* @param string $message
* @param int level
*/
2012-03-31 01:15:48 +04:00
public static function write($app, $message, $level) {
2012-10-12 17:45:05 +04:00
if (self::$enabled) {
if (!self::$class) {
self::$class = 'OC_Log_'.ucfirst(OC_Config::getValue('log_type', 'owncloud'));
call_user_func(array(self::$class, 'init'));
}
$log_class=self::$class;
$log_class::write($app, $message, $level);
2011-10-16 22:49:14 +04:00
}
}
2012-09-12 23:30:04 +04:00
//Fatal errors handler
public static function onShutdown() {
2012-09-12 23:30:04 +04:00
$error = error_get_last();
if($error) {
//ob_end_clean();
self::write('PHP', $error['message'] . ' at ' . $error['file'] . '#' . $error['line'], self::FATAL);
} else {
return true;
}
}
2012-09-26 15:38:06 +04:00
// Uncaught exception handler
public static function onException($exception) {
2012-09-26 15:38:06 +04:00
self::write('PHP', $exception->getMessage() . ' at ' . $exception->getFile() . '#' . $exception->getLine(), self::FATAL);
}
2012-09-12 23:30:04 +04:00
//Recoverable errors handler
public static function onError($number, $message, $file, $line) {
if (error_reporting() === 0) {
return;
}
2012-09-12 23:30:04 +04:00
self::write('PHP', $message . ' at ' . $file . '#' . $line, self::WARN);
}
2011-10-16 22:49:14 +04:00
}