#6280: Add conditional logging, LOG_LEVEL >= LOG_WARNING for production systems
--------------------------+-------------------------------------------------
    Reporter:  cuppett    |          Type:  Enhancement
      Status:  new        |      Priority:  Medium     
   Milestone:  1.2.x.x    |     Component:  General    
     Version:  1.2 Final  |      Severity:  Major      
    Keywords:             |   Php_version:  n/a        
Cake_version:  1.2.2      |  
--------------------------+-------------------------------------------------
 I noticed that there really isn't a way in cake_log.php to disable logging
 under a certain threshold.  This is a pretty big deal on busy production
 systems to pound on LOG_DEBUG and debug.log and creates some I/O
 contention where it really isn't necessary.

 I modified CakeLog->write() to support this; however, I stripped out the
 "you can use the number or the word" reverse lookup currently in there
 since it was unnecessary for my code, but it's a start for how this could
 be implemented.  It basically checks the log level requested to write and
 if it isn't <= a new constant LOG_LEVEL, it won't write.

 {{{

         function write($type, $msg) {

                 $levels = array(
                         LOG_WARNING => 'warning',
                         LOG_NOTICE => 'notice',
                         LOG_INFO => 'info',
                         LOG_DEBUG => 'debug',
                         LOG_ERR => 'error',
                         LOG_ERROR => 'error'
                 );
                 if (!is_int($type) || $type <= LOG_LEVEL) {
                         if (is_int($type) && isset($levels[$type])) {
                                 $type = $levels[$type];
                         }
                         if ($type == 'error' || $type == 'warning') {
                                 $filename = LOGS . 'error.log';
                         } else {
                                 $filename = LOGS . 'debug.log';
                         }
                         $output = date('Y-m-d H:i:s') . ' ' .
 ucfirst($type) . ': ' . $msg . "\n";
                         $log = new File($filename, true);
                         if ($log->writable()) {
                                 return $log->append($output);
                         }
                 }
                 return true;
         }


 }}}

-- 
Ticket URL: <https://trac.cakephp.org/ticket/6280>
CakePHP : The Rapid Development Framework for PHP <https://trac.cakephp.org/>
Cake is a rapid development framework for PHP which uses commonly known design 
patterns like ActiveRecord, Association Data Mapping, Front Controller and MVC. 
Our primary goal is to provide a structured framework that enables PHP users at 
all levels to rapidly develop robust web applications, without any loss to 
flexibility.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"tickets cakephp" group.
To post to this group, send email to tickets-cakephp@googlegroups.com
To unsubscribe from this group, send email to 
tickets-cakephp+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/tickets-cakephp?hl=en
-~----------~----~----~----~------~----~------~--~---

  • [CakePHP : The Rapid Dev... CakePHP : The Rapid Development Framework for PHP

Reply via email to