Class CakeLog
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.
Configuring Log adapters
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.
Writing to the log
You write to the logs using CakeLog::write(). See its documentation for more information.
Logging Levels
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.
Logging scopes
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
Copyright: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
License: MIT License
Location: Cake/Log/CakeLog.php
Properties summary
-
$_Collection
protected staticLogEngineCollection class -
$_defaultLevels
protected staticarray
Default log levels as detailed in RFC 5424 http://tools.ietf.org/html/rfc5424
-
$_levelMap
protected staticarray
Mapped log levels -
$_levels
protected staticarray
Active log levels for this instance.
Method Summary
-
_autoConfig() protected static
Configures the automatic/default stream a FileLog. -
_init() protected static
initialize ObjectCollection -
alert() public static
Convenience method to log alert messages -
config() public static
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.
-
configured() public static
Returns the keynames of the currently active streams -
critical() public static
Convenience method to log critical messages -
debug() public static
Convenience method to log debug messages -
defaultLevels() public static
Reset log levels to the original value -
disable() public static
Disable stream. Disabling a stream will prevent that log stream from receiving any messages until its re-enabled.
-
drop() public static
Removes a stream from the active streams. Once a stream has been removed it will no longer have messages sent to it.
-
emergency() public static
Convenience method to log emergency messages -
enable() public static
Enable stream. Streams that were previously disabled can be re-enabled with this method.
-
enabled() public static
Checks whether $streamName is enabled -
error() public static
Convenience method to log error messages -
info() public static
Convenience method to log info messages -
levels() public static
Gets/sets log levels -
notice() public static
Convenience method to log notice messages -
stream() public static
Gets the logging engine from the active streams. -
warning() public static
Convenience method to log warning messages -
write() public static
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.
Method Detail
alert() public static ¶
alert( string $message , string|array $scope = array() )
Convenience method to log alert messages
Parameters
- string $message
- log message
- string|array $scope optional array()
The scope(s) a log message is being created in. See CakeLog::config() for more information on logging scopes.
Returns
Success
config() public static ¶
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.
Usage:
{{{ 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.
Logging levels
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.
Logging scopes
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.
Parameters
- string $key
The keyname for this logger, used to remove the logger later.
- array $config
- Array of configuration information for the logger
Returns
success of configuration.
Throws
configured() public static ¶
configured( )
Returns the keynames of the currently active streams
Returns
Array of configured log streams.
critical() public static ¶
critical( string $message , string|array $scope = array() )
Convenience method to log critical messages
Parameters
- string $message
- log message
- string|array $scope optional array()
The scope(s) a log message is being created in. See CakeLog::config() for more information on logging scopes.
Returns
Success
debug() public static ¶
debug( string $message , string|array $scope = array() )
Convenience method to log debug messages
Parameters
- string $message
- log message
- string|array $scope optional array()
The scope(s) a log message is being created in. See CakeLog::config() for more information on logging scopes.
Returns
Success
defaultLevels() public static ¶
defaultLevels( )
Reset log levels to the original value
Returns
Default log levels
disable() public static ¶
disable( string $streamName )
Disable stream. Disabling a stream will prevent that log stream from receiving any messages until its re-enabled.
Parameters
- string $streamName
- to disable
Throws
drop() public static ¶
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.
Parameters
- string $streamName
- Key name of a configured stream to remove.
emergency() public static ¶
emergency( string $message , string|array $scope = array() )
Convenience method to log emergency messages
Parameters
- string $message
- log message
- string|array $scope optional array()
The scope(s) a log message is being created in. See CakeLog::config() for more information on logging scopes.
Returns
Success
enable() public static ¶
enable( string $streamName )
Enable stream. Streams that were previously disabled can be re-enabled with this method.
Parameters
- string $streamName
- to enable
Throws
enabled() public static ¶
enabled( string $streamName )
Checks whether $streamName is enabled
Parameters
- string $streamName
- to check
Returns
Throws
error() public static ¶
error( string $message , string|array $scope = array() )
Convenience method to log error messages
Parameters
- string $message
- log message
- string|array $scope optional array()
The scope(s) a log message is being created in. See CakeLog::config() for more information on logging scopes.
Returns
Success
info() public static ¶
info( string $message , string|array $scope = array() )
Convenience method to log info messages
Parameters
- string $message
- log message
- string|array $scope optional array()
The scope(s) a log message is being created in. See CakeLog::config() for more information on logging scopes.
Returns
Success
levels() public static ¶
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', ); }}}
Parameters
- array $levels optional array()
- array
- boolean $append optional true
- true to append, false to replace
Returns
Active log levels
notice() public static ¶
notice( string $message , string|array $scope = array() )
Convenience method to log notice messages
Parameters
- string $message
- log message
- string|array $scope optional array()
The scope(s) a log message is being created in. See CakeLog::config() for more information on logging scopes.
Returns
Success
stream() public static ¶
stream( string $streamName )
Gets the logging engine from the active streams.
Parameters
- string $streamName
- Key name of a configured stream to get.
Returns
instance of BaseLog or false if not found
See
warning() public static ¶
warning( string $message , string|array $scope = array() )
Convenience method to log warning messages
Parameters
- string $message
- log message
- string|array $scope optional array()
The scope(s) a log message is being created in. See CakeLog::config() for more information on logging scopes.
Returns
Success
write() public static ¶
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.
Types:
- LOG_EMERG => 'emergency',
- LOG_ALERT => 'alert',
- LOG_CRIT => 'critical',
LOG_ERR
=> 'error',LOG_WARNING
=> 'warning',LOG_NOTICE
=> 'notice',LOG_INFO
=> 'info',LOG_DEBUG
=> 'debug',
Usage:
Write a message to the 'warning' log:
CakeLog::write('warning', 'Stuff is broken here');
Parameters
- integer|string $type
Type of message being written. When value is an integer or a string matching the recognized levels, then it will be treated log levels. Otherwise it's treated as scope.
- string $message
- Message content to log
- string|array $scope optional array()
The scope(s) a log message is being created in. See CakeLog::config() for more information on logging scopes.
Returns
Success
Properties detail
$_defaultLevels ¶
Default log levels as detailed in RFC 5424 http://tools.ietf.org/html/rfc5424
array( 'emergency' => LOG_EMERG, 'alert' => LOG_ALERT, 'critical' => LOG_CRIT, 'error' => LOG_ERR, 'warning' => LOG_WARNING, 'notice' => LOG_NOTICE, 'info' => LOG_INFO, 'debug' => LOG_DEBUG, )