Skip to content

Logging Module

Configuration

Python
# basic configuration for the logging system
logging.basicConfig(filename="relpath", level=logging.LOG_LEVEL, format=f"message format", **kwargs)  
# DATEFMT: Use the specified date/time format, as accepted by time.strftime().

# create a logger with a name (useful for having multiple loggers)
logger = logging.getLogger(name="logger name")  
logger.level  # LOG_LEVEL for this logger

# disable all logging calls of severity level and below
# alternative to basicConfig(level=logging.LOG_LEVEL)
logging.disable(level=LOG_LEVEL)  

Format (basicConfig(format=""))

Attribute name Format Description
asctime %(asctime)s Human-readable time when the LogRecord was created. Modified by basicConfig(datefmt="")
created %(created)f Time when the LogRecord was created (as returned by time.time()).
filename %(filename)s Filename portion of pathname.
funcName %(funcName)s Name of function containing the logging call.
levelname %(levelname)s Text logging level for the message.
levelno %(levelno)s Numeric logging level for the message.
lineno %(lineno)d Source line number where the logging call was issued (if available).
message %(message)s The logged message, computed as msg % args.
module %(module)s Module (name portion of filename).
msecs %(msecs)d Millisecond portion of the time when the LogRecord was created.
name %(name)s Name of the logger used to log the call.
pathname %(pathname)s Full pathname of the source file where the logging call was issued (if available).
process %(process)d Process ID (if available).
processName %(processName)s Process name (if available).
thread %(thread)d Thread ID (if available).
threadName %(threadName)s Thread name (if available).

Datefmt (basicConfig(datefmt=""))

Directive Meaning
%a Locale's abbreviated weekday name.
%A Locale's full weekday name.
%b Locale's abbreviated month name.
%B Locale's full month name.
%c Locale's appropriate date and time representation.
%d Day of the month as a decimal number [01,31].
%H Hour (24-hour clock) as a decimal number [00,23].
%I Hour (12-hour clock) as a decimal number [01,12].
%j Day of the year as a decimal number [001,366].
%m Month as a decimal number [01,12].
%M Minute as a decimal number [00,59].
%p Locale's equivalent of either AM or PM.
%S Second as a decimal number [00,61].
%U Week number of the year (Sunday as the first day of the week) as a decimal number [00,53].
%w Weekday as a decimal number [0(Sunday),6].
%W Week number of the year (Monday as the first day of the week) as a decimal number [00,53].
%x Locale's appropriate date representation.
%X Locale's appropriate time representation.
%y Year without century as a decimal number [00,99].
%Y Year with century as a decimal number.
%z Time zone offset indicating a positive or negative time difference from UTC/GMT of the form +HHMM or -HHMM [-23:59, +23:59].
%Z Time zone name (no characters if no time zone exists).
%% A literal '%' character.

Logs

Log Levels (Low To High):

  • default: 0
  • debug: 10
  • info: 20
  • warning: 30
  • error: 40
  • critical: 50
Python
1
2
3
4
5
logging.debug(msg)  # Logs a message with level DEBUG on the root logger
logging.info(msg)  # Logs a message with level INFO on the root logger
logging.warning(msg)  # Logs a message with level WARNING on the root logger
logging.error(msg)  # Logs a message with level ERROR on the root logger
logging.critical(msg)  # Logs a message with level CRITICAL on the root logger