CodeIgniter installed
[living-lab-site.git] / system / libraries / Log.php
diff --git a/system/libraries/Log.php b/system/libraries/Log.php
new file mode 100755 (executable)
index 0000000..fb2c5a4
--- /dev/null
@@ -0,0 +1,114 @@
+<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
+/**
+ * CodeIgniter
+ *
+ * An open source application development framework for PHP 5.1.6 or newer
+ *
+ * @package            CodeIgniter
+ * @author             ExpressionEngine Dev Team
+ * @copyright  Copyright (c) 2008 - 2011, EllisLab, Inc.
+ * @license            http://codeigniter.com/user_guide/license.html
+ * @link               http://codeigniter.com
+ * @since              Version 1.0
+ * @filesource
+ */
+
+// ------------------------------------------------------------------------
+
+/**
+ * Logging Class
+ *
+ * @package            CodeIgniter
+ * @subpackage Libraries
+ * @category   Logging
+ * @author             ExpressionEngine Dev Team
+ * @link               http://codeigniter.com/user_guide/general/errors.html
+ */
+class CI_Log {
+
+       protected $_log_path;
+       protected $_threshold   = 1;
+       protected $_date_fmt    = 'Y-m-d H:i:s';
+       protected $_enabled     = TRUE;
+       protected $_levels      = array('ERROR' => '1', 'DEBUG' => '2',  'INFO' => '3', 'ALL' => '4');
+
+       /**
+        * Constructor
+        */
+       public function __construct()
+       {
+               $config =& get_config();
+
+               $this->_log_path = ($config['log_path'] != '') ? $config['log_path'] : APPPATH.'logs/';
+
+               if ( ! is_dir($this->_log_path) OR ! is_really_writable($this->_log_path))
+               {
+                       $this->_enabled = FALSE;
+               }
+
+               if (is_numeric($config['log_threshold']))
+               {
+                       $this->_threshold = $config['log_threshold'];
+               }
+
+               if ($config['log_date_format'] != '')
+               {
+                       $this->_date_fmt = $config['log_date_format'];
+               }
+       }
+
+       // --------------------------------------------------------------------
+
+       /**
+        * Write Log File
+        *
+        * Generally this function will be called using the global log_message() function
+        *
+        * @param       string  the error level
+        * @param       string  the error message
+        * @param       bool    whether the error is a native PHP error
+        * @return      bool
+        */
+       public function write_log($level = 'error', $msg, $php_error = FALSE)
+       {
+               if ($this->_enabled === FALSE)
+               {
+                       return FALSE;
+               }
+
+               $level = strtoupper($level);
+
+               if ( ! isset($this->_levels[$level]) OR ($this->_levels[$level] > $this->_threshold))
+               {
+                       return FALSE;
+               }
+
+               $filepath = $this->_log_path.'log-'.date('Y-m-d').EXT;
+               $message  = '';
+
+               if ( ! file_exists($filepath))
+               {
+                       $message .= "<"."?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed'); ?".">\n\n";
+               }
+
+               if ( ! $fp = @fopen($filepath, FOPEN_WRITE_CREATE))
+               {
+                       return FALSE;
+               }
+
+               $message .= $level.' '.(($level == 'INFO') ? ' -' : '-').' '.date($this->_date_fmt). ' --> '.$msg."\n";
+
+               flock($fp, LOCK_EX);
+               fwrite($fp, $message);
+               flock($fp, LOCK_UN);
+               fclose($fp);
+
+               @chmod($filepath, FILE_WRITE_MODE);
+               return TRUE;
+       }
+
+}
+// END Log Class
+
+/* End of file Log.php */
+/* Location: ./system/libraries/Log.php */
\ No newline at end of file