This documentation covers IPython versions 6.0 and higher. Beginning with version 6.0, IPython stopped supporting compatibility with Python versions lower than 3.3 including all versions of Python 2.7.

If you are looking for an IPython version compatible with Python 2.7, please use the IPython 5.x LTS release and refer to its documentation (LTS is the long term support release).

Module: core.magics.logging

Implementation of magic functions for IPython’s own logging.

1 Class

class IPython.core.magics.logging.LoggingMagics(**kwargs: Any)

Bases: Magics

Magics related to all logging machinery.


Temporarily stop logging.

You must have previously started logging.


Restart logging.

This function is for restarting logging which you’ve temporarily stopped with %logoff. For starting logging for the first time, you must use the %logstart function, which allows you to specify an optional log filename.


Start logging anywhere in a session.

%logstart [-o|-r|-t|-q] [log_name [log_mode]]

If no name is given, it defaults to a file named ‘’ in your current directory, in ‘rotate’ mode (see below).

‘%logstart name’ saves to file ‘name’ in ‘backup’ mode. It saves your history up to that point and then continues logging.

%logstart takes a second optional parameter: logging mode. This can be one of (note that the modes are given unquoted):


Keep logging at the end of any existing file.


Rename any existing file to name~ and start name.


Append to a single logfile in your home directory.


Overwrite any existing log.


Create rotating logs: name.1~, name.2~, etc.



log also IPython’s output. In this mode, all commands which generate an Out[NN] prompt are recorded to the logfile, right after their corresponding input line. The output lines are always prepended with a ‘#[Out]# ‘ marker, so that the log remains valid Python code.

Since this marker is always the same, filtering only the output from a log is very easy, using for example a simple awk call:

awk -F'#\[Out\]# ' '{if($2) {print $2}}'

log ‘raw’ input. Normally, IPython’s logs contain the processed input, so that user lines are logged in their final form, converted into valid Python. For example, %Exit is logged as _ip.magic(“Exit”). If the -r flag is given, all input is logged exactly as typed, with no transformations applied.


put timestamps before each input line logged (these are put in comments).


suppress output of logstate message when logging is invoked


Print the status of the logging system.


Fully stop logging and close log file.

In order to start logging again, a new %logstart call needs to be made, possibly (though not necessarily) with a new filename, mode and other options.


Suppress output of log state when logging is enabled