Logs messages to configured Log adapters. One or more adapters can be configured using CakeLogs's methods. If you don't configure any adapters, and write to the logs a default FileLog will be autoconfigured for you.
You can configure log adapters in your applications bootstrap.php
file. A sample configuration would look like:
CakeLog::config('my_log', array('engine' => 'File'));
See the documentation on CakeLog::config() for more detail.
You write to the logs using CakeLog::write(). See its documentation for more information.
By default CakeLog supports all the log levels defined in RFC 5424. When logging messages you can either use the named methods, or the correct constants with write()
:
CakeLog::error('Something horrible happened'); CakeLog::write(LOG_ERR, 'Something horrible happened');
If you require custom logging levels, you can use CakeLog::levels() to append additional logging levels.
When logging messages and configuring log adapters, you can specify 'scopes' that the logger will handle. You can think of scopes as subsystems in your application that may require different logging setups. For example in an e-commerce application you may want to handle logged errors in the cart and ordering subsystems differently than the rest of the application. By using scopes you can control logging for each part of your application and still keep standard log levels.
See CakeLog::config() and CakeLog::write() for more information on scopes
alert( string $message , string|array $scope array() )
Convenience method to log alert messages
$message
$scope
optional array() boolean
config( string $key , array $config )
Configure and add a new logging stream to CakeLog You can use add loggers from app/Log/Engine use app.loggername, or any plugin/Log/Engine using plugin.loggername.
CakeLog::config('second_file', array( 'engine' => 'File', 'path' => '/var/logs/my_app/' ));
Will configure a FileLog instance to use the specified path. All options that are not engine
are passed onto the logging adapter, and handled there. Any class can be configured as a logging adapter as long as it implements the methods in CakeLogInterface.
When configuring loggers, you can set which levels a logger will handle. This allows you to disable debug messages in production for example:
CakeLog::config('default', array( 'engine' => 'File', 'path' => LOGS, 'levels' => array('error', 'critical', 'alert', 'emergency') ));
The above logger would only log error messages or higher. Any other log messages would be discarded.
When configuring loggers you can define the active scopes the logger is for. If defined only the listed scopes will be handled by the logger. If you don't define any scopes an adapter will catch all scopes that match the handled levels.
CakeLog::config('payments', array( 'engine' => 'File', 'types' => array('info', 'error', 'warning'), 'scopes' => array('payment', 'order') ));
The above logger will only capture log entries made in the payment
and order
scopes. All other scopes including the undefined scope will be ignored. Its important to remember that when using scopes you must also define the types
of log messages that a logger will handle. Failing to do so will result in the logger catching all log messages even if the scope is incorrect.
$key
$config
boolean
CakeLogException
configured( )
Returns the keynames of the currently active streams
array
critical( string $message , string|array $scope array() )
Convenience method to log critical messages
$message
$scope
optional array() boolean
debug( string $message , string|array $scope array() )
Convenience method to log debug messages
$message
$scope
optional array() boolean
defaultLevels( )
Reset log levels to the original value
array
disable( string $streamName )
Disable stream. Disabling a stream will prevent that log stream from receiving any messages until its re-enabled.
$streamName
CakeLogException
drop( string $streamName )
Removes a stream from the active streams. Once a stream has been removed it will no longer have messages sent to it.
$streamName
emergency( string $message , string|array $scope array() )
Convenience method to log emergency messages
$message
$scope
optional array() boolean
enable( string $streamName )
Enable stream. Streams that were previously disabled can be re-enabled with this method.
$streamName
CakeLogException
enabled( string $streamName )
Checks whether $streamName is enabled
$streamName
boolean
CakeLogException
error( string $message , string|array $scope array() )
Convenience method to log error messages
$message
$scope
optional array() boolean
info( string $message , string|array $scope array() )
Convenience method to log info messages
$message
$scope
optional array() boolean
levels( array $levels array() , boolean $append true )
Gets/sets log levels
Call this method without arguments, eg: CakeLog::levels()
to obtain current level configuration.
To append additional level 'user0' and 'user1' to to default log levels:
CakeLog::levels(array('user0, 'user1')); // or CakeLog::levels(array('user0, 'user1'), true);
will result in:
array( 0 => 'emergency', 1 => 'alert', ... 8 => 'user0', 9 => 'user1', );
To set/replace existing configuration, pass an array with the second argument set to false.
CakeLog::levels(array('user0, 'user1'), false);
will result in:
array( 0 => 'user0', 1 => 'user1', );
$levels
optional array() $append
optional true array
notice( string $message , string|array $scope array() )
Convenience method to log notice messages
$message
$scope
optional array() boolean
stream( string $streamName )
Gets the logging engine from the active streams.
$streamName
mixed
BaseLog
warning( string $message , string|array $scope array() )
Convenience method to log warning messages
$message
$scope
optional array() boolean
write( integer|string $type , string $message , string|array $scope array() )
Writes the given message and type to all of the configured log adapters. Configured adapters are passed both the $type and $message variables. $type is one of the following strings/values.
LOG_ERR
=> 'error',LOG_WARNING
=> 'warning',LOG_NOTICE
=> 'notice',LOG_INFO
=> 'info',LOG_DEBUG
=> 'debug',Write a message to the 'warning' log:
CakeLog::write('warning', 'Stuff is broken here');
$type
$message
$scope
optional array() boolean
© 2005–2016 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
http://api.cakephp.org/2.7/class-CakeLog.html