The loggable module contains the Loggable class which provides the ability to create a class which is loggable. Any class that is Loggable will have the following logging functions exposed:
- debug(message, debugLevel, args, kwargs)
- info(message, debugLevel, args, kwargs)
- warn(message, debugLevel, args, kwargs)
- warning(message, debugLevel, args, kwargs)
- error(message, debugLevel, args, kwargs)
- fatal(message, debugLevel, args, kwargs)
- critical(message, debugLevel, args, kwargs)
- log(logLevel, message, debugLevel, args, kwargs)
The LogData class provides the ability to store logging data for an entire system in an object that can be easily handled.
The LogData class stores a LogLevel and an integer debug level for a system, and provides the ability to create a named Logger from the stored values.
For example:
# Any Logger objects created from this LogData object will have a
# LogLevel of DEBUG, and a debug level of 10.
logData = LogData(LogLevel.DEBUG, 10)
# Create a logger named 'ExampleLogger' which will log messages
# with a red foreground color.
logger = logData.get("ExampleLogger", Colors.Foreground.Red)
# This message will be displayed
logger.debug("Example message", 2)
# This message will not be displayed
logger.debug("Example message", 11)
LogData objects can be easily passed around which allows the :class::LogLevel and debug level values to be easily propagated throughout the system, rather than having individual values for each system component.
Get a new Logger with the given name.
The Colors class contains two classes which define possible Foreground and Background colors. These colors can be used to colorize console output in a specific way.
The Background class contains definitions of the following background colors.
The Foreground class contains definitions of the following foreground colors.
The Logger class provides the ability to log various types of messages to a specific stream, and formats the messages using given Prefix objects.
The Logger class will log each LogLevel with a colored prefix indicating the name of the log level. Logged messages are only displayed in the event that the LogLevel at which they are logged is greater than or equal to the current LogLevel of the Logger which is logging the message. Each LogLevel.DEBUG message can also have an optional debug level specified, which will allow that message to be displayed so long as the specified debug level is less than or equal to the configured debug level of the Logger object.
Each Logger object can be named, and colored, which means that any message logged using that object will be displayed with a prefix indicating the name (and displayed in the specified color) of the object which logged the message.
Logger objects can be given a chain of Prefix objects. Any message logged using that Logger object will then have a series of prefixes added to the front of the message.
Logger objects can also have a handler specified, which specifies the type of stream which will be handled by this Logger. For example, to output to the console a value of logging.StreamHandler could be specified, whereas a value of logging.FileHandler could be specified to log to a specific file.
Example:
# Create a Logger with the name 'Example1'
logger = Logger("Example1")
logger.info("Information message")
# Create a Logger with the name 'Example2', a foreground
# color of Blue, and logs DEBUG messages that have a debug
# level less than or equal to 10.
logger = Logger("Example2", color=Colors.Foreground.Blue,
logLevel=LogLevel.DEBUG, debugLevel=10)
logger.debug("This message is displayed", 2)
logger.debug("This message is not displayed", 11)
# Create a Logger with the name 'Example3' that only displays
# ERROR messages
logger = Logger("Example3", logLevel=LogLevel.ERROR)
logger.warn("This would not be displayed")
Log a critical message.
Log a debug message.
Log an error message.
Log a fatal message.
Log an info message.
Log a message at the given log level.
Set the name for this logger.
Set the prefix for this logger.
Log a warning message.
Log a warning message.
The Loggable class provides the ability to expose the logging methods (i.e., debug, info, warn, warning, error, fatal, critical, and error) on a specific class. This provides the ability to easily log messages throughout a class without needed to specifically create a Logger object.
The Loggable class can be created from either a Logger object, or a LogData object.
Log a critical message.
Log a debug message.
Log an error message.
Log a fatal message.
Log an info message.
Log a message at the given log level.