Class CakeLog

Logs messages to configured Log adapters.

One or more adapters can be configured using CakeLogs's methods.

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

Package: Cake\Log
Link: http://book.cakephp.org/2.0/en/core-libraries/logging.html#logging
Copyright: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
License: MIT License
Location: Cake/Log/CakeLog.php

Properties summary

Method Summary

  • _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

_init()source protected static

_init( )

initialize ObjectCollection

alert()source 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

boolean
Success

config()source 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

boolean
success of configuration.

Throws

CakeLogException

Link

http://book.cakephp.org/2.0/en/core-libraries/logging.html#creating-and-configuring-log-streams

configured()source public static

configured( )

Returns the keynames of the currently active streams

Returns

array
Array of configured log streams.

critical()source 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

boolean
Success

debug()source 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

boolean
Success

defaultLevels()source public static

defaultLevels( )

Reset log levels to the original value

Returns

array
Default log levels

disable()source 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

CakeLogException

drop()source 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()source 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

boolean
Success

enable()source 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

CakeLogException

enabled()source public static

enabled( string $streamName )

Checks whether $streamName is enabled

Parameters

string $streamName
to check

Returns

boolean

Throws

CakeLogException

error()source 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

boolean
Success

info()source 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

boolean
Success

levels()source 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

array
Active log levels

notice()source 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

boolean
Success

stream()source 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

mixed
instance of BaseLog or false if not found

See

BaseLog

warning()source 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

boolean
Success

write()source 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

boolean
Success

Link

http://book.cakephp.org/2.0/en/core-libraries/logging.html#writing-to-logs

Properties detail

$_Collectionsource

protected static LogEngineCollection

LogEngineCollection class

$_defaultLevelssource

protected static array

Default log levels as detailed in RFC 5424 http://tools.ietf.org/html/rfc5424

Windows has fewer levels, thus notice, info and debug are the same. https://bugs.php.net/bug.php?id=18090

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,
)

$_levelMapsource

protected static array

Mapped log levels

$_levelssource

protected static array

Active log levels for this instance.

© 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.8/class-CakeLog.html