Enabling Deprecation Warnings

Deprecation warnings are handled by the same warning system as Python using the warnings library. To enable warning, set the PYTHONWARNINGS environment variable.


Python warnings should always be enabled for unit tests. Pytest, the default testing framework for Cement generated projects, enables this by default.

Cement v3.0.10


The logging facility FATAL is being deprecated in favor of CRITICAL. This follows the standard library upstream:

Though the FATAL facility may never be fully removed upstream, it makes sense to deprecate it in Cement.

Support for the FATAL facility, and app.log.fatal() may be removed any time in or after Cement v3.2.0.

Developers should modify their apps to use critical:

app.log.critical('Some log message')

Cement v3.0.8


The environment variable CEMENT_FRAMEWORK_LOGGING is being deprecated in favor of CEMENT_LOG.



export CEMENT_LOG=1

myapp {command, options, etc}

Setting CEMENT_LOG=1 will set App.Meta.framework_logging = True.

Support for CEMENT_FRAMEWORK_LOGGING will be removed in Cement v3.2.0.


In Cement v3.0.x, the default for App.Meta.framework_logging is True, however framework logging is only triggered if the --debug option is passed at the command-line. The --debug option was previously hard-coded, but is now configurable and therefore should no longer be used to toggle framework logging.

In Cement 3.2.0, the logic of App.Meta.framework_logging will be repurposed, or removed. The plan, currently, is that --debug will only toggle the logging level and App.Meta.debug but not toggle Cement framework logging. One thought is that App.Meta.framework_logging could trigger framework/extensions to use the App logger, once it is available (instead of MinimalLogger everywhere).

As of 3.0.8, you can use CEMENT_LOG=1 (environment variable) instead of --debug for the same functionality.

FIXME: Exact details to be determined.


Last updated