Skip to content
Snippets Groups Projects
Select Git revision
  • 209392587f594c0292bf39daf44657d20342aea4
  • master default protected
2 results

robots.txt

Blame
  • log.php 1.62 KiB
    <?php
    /**
     * 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.
     */
    
    /**
     * logging utilities
     *
     * Log is saved by default at data/owncloud.log using OC_Log_Owncloud.
     * Selecting other backend is done with a config option 'log_type'.
     */
    
    class OC_Log {
    	const DEBUG=0;
    	const INFO=1;
    	const WARN=2;
    	const ERROR=3;
    	const FATAL=4;
    
    	static public $enabled = true;
    	static protected $class = null;
    
    	/**
    	 * write a message in the log
    	 * @param string $app
    	 * @param string $message
    	 * @param int level
    	 */
    	public static function write($app, $message, $level) {
    		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);
    		}
    	}
    	
    	//Fatal errors handler
    	public static function onShutdown() {
    		$error = error_get_last();
    		if($error) {
    			//ob_end_clean();
    			self::write('PHP', $error['message'] . ' at ' . $error['file'] . '#' . $error['line'], self::FATAL);
    		} else {
    			return true;
    		}
    	}
    	
    	// Uncaught exception handler
    	public static function onException($exception) {
    		self::write('PHP', $exception->getMessage() . ' at ' . $exception->getFile() . '#' . $exception->getLine(), self::FATAL);
    	}
    
    	//Recoverable errors handler
    	public static function onError($number, $message, $file, $line) {
    		if (error_reporting() === 0) {
    			return;
    		}
    		self::write('PHP', $message . ' at ' . $file . '#' . $line, self::WARN);
    
    	}
    }