Attention

TYPO3 v6 has reached its end-of-life April 18th, 2017 and is not maintained by the community anymore. Looking for a stable version? Use the version switch on the top left.

There is no further ELTS support. It is strongly recommended updating your project.

Configuration

All configuration options related to error and exception handling are found in $TYPO3_CONF_VARS[SYS]:

Key

Data type

Description

displayErrors

integer

Configures whether PHP errors should be displayed.

  • 0 = Do not display any PHP error messages. Overrides the value of "exceptionalErrors" and sets it to 0 (= no errors are turned into exceptions),the configured productionExceptionHandler is used as exception handler

  • 1 = Display error messages with the registered error handler,the configured debugExceptionHandler is used as exception handler

  • 2 = Display errors only if client matches $TYPO3_CONF_VARS[SYS][devIPmask]. If devIPmask matches the users IP address the configured "debugExceptionHandler" is used for exceptions, if not "productionExceptionHandler" will be used.

  • -1 = Default setting. With this option, you can override the PHP setting display_errors. If devIPmask matches the users IP address the configured debugExceptionHandler is used for exceptions, if not productionExceptionHandler will be used.

errorHandler

string

Classname to handle PHP errors. Leave empty to disable error handling.

Default: \TYPO3\CMS\Core\Error\ErrorHandler. This class will register itself as error handler. It is able to write error messages to all available logging systems in TYPO3 (\TYPO3\CMS\Core\Utility\GeneralUtility::syslog, \TYPO3\CMS\Core\Utility\GeneralUtility::devlog() and to the "sys_log" table).

Additionally the errors can be displayed as flash messages in the Backend or in the adminpanel in Frontend. The flash messages in Backend are only displayed if the error and exception handling is in "debug-mode", which is the case when the configured "debugExceptionHandler" is registered as exception handler (see: $TYPO3_CONF_VARS[SYS][displayErrors]).

Errors which are registered as "exceptionalErrors" will be turned into exceptions (to be handled by the configured exceptionHandler).

errorHandlerErrors

integer

The E_* constant that will be handled by the error handler

Default: E_ALL ^ E_NOTICE

exceptionalErrors

integer

The E_* constant that will be handled as an exception by the error handler.

Default: E_ALL ^ E_NOTICE ^ E_WARNING ^ E_USER\_ERROR ^ E_USER\_NOTICE ^ E_USER\_WARNING (4341) and "0" if $TYPO3_CONF_VARS[SYS][displayErrors] = 0.

Refer to the PHP documentation for more details on this value.

productionExceptionHandler

string

Classname to handle exceptions that might happen in the TYPO3-code.

Leave empty to disable exception handling.

Default: \TYPO3\CMS\Core\Error\ProductionExceptionHandler. This exception handler displays a nice error message when something went wrong. The error message is logged to the configured logs.

Note

The configured productionExceptionHandler is used if $TYPO3_CONF_VARS[SYS][displayErrors] is set to "0" or to "-1" and $TYPO3_CONF_VARS[SYS][devIPmask] doesn't match.

debugExceptionHandler

string

Classname to handle exceptions that might happen in the TYPO3 code.

Leave empty to disable exception handling.

Default: \TYPO3\CMS\Core\Error\DebugExceptionHandler. This exception handler displays the complete stack trace of any encountered exception. The error message and the stack trace is logged to the configured logs.

Note

The configured debugExceptionHandler is used if $TYPO3_CONF_VARS[SYS][displayErrors] is set to "1" or if $TYPO3_CONF_VARS[SYS][displayErrors] is "-1" or "2" and the $TYPO3_CONF_VARS[SYS][devIPmask] matches.

enable_errorDLOG

boolean

Whether errors should be written to the Developer's Log (requires an installed *devlog extension).

enable_exceptions

boolean

Whether exceptions should be written to the Developer's Log (requires an installed *devlog extension).

syslogErrorReporting

integer

Configures which PHP errors should be logged to the configured syslogs (see: [SYS][systemLog]). If set to "0" no PHP errors are logged to the syslog.

Default: E_ALL ^ E_NOTICE (6135).

belogErrorReporting

integer

Configures which PHP errors should be logged to the "sys_log" table (extension: belog). If set to "0" no PHP errors are logged to the "sys_log" table.

Default: E_ALL ^ E_NOTICE (6135).

The table below shows which values can be set by the user and which are set by TYPO3.

Values in plain text can be changed in LocalConfiguration.php.

Values in bold are set by TYPO3.

displayErrors

errorHandlerErrors

exceptionalErrors

errorHandler

devIPmask

exceptionHandler

display_errors

(php_ini)

-1

E_ALL ^ E_NOTICE

E_ALL ^ E_NOTICE ^ E_WARNING ^ E_USER_ERROR ^ E_USER_NOTICE

TYPO3CMS CoreError ErrorHandler

Matters

If devIPmask matches: debugExceptionHandler


If devIPmask doesn't match: productionExceptionHandler

Not changed

0

E_ALL ^ E_NOTICE

0 (no errors are turned into exceptions)

TYPO3CMS CoreError ErrorHandler

Doesn't matter

production ExceptionHandler

0 (Off)

1

E_ALL ^ E_NOTICE

E_ALL ^ E_NOTICE ^ E_WARNING ^ E_USER_ERROR ^ E_USER_NOTICE ^ E_USER_WARNING

TYPO3CMS CoreError ErrorHandler

Doesn't matter

debugException Handler

1 (On)

2

E_ALL ^ E_NOTICE

E_ALL ^ E_NOTICE ^ E_WARNING ^ E_USER_ERROR ^ E_USER_NOTICE ^ E_USER_WARNING

TYPO3CMS CoreError ErrorHandler

Matters

If devIPmask matches: debugExceptionHandler


If devIPmask doesn't match: productionExceptionHandler

1 (On)



0 (Off)

The following sections highlight the roles and goals of the various classes related to error and exception handling. Examples and custom handlers are also discussed.