pip_services3_components.log package
Submodules
- pip_services3_components.log.CachedLogger module
- pip_services3_components.log.CompositeLogger module
- pip_services3_components.log.ConsoleLogger module
- pip_services3_components.log.DefaultLoggerFactory module
- pip_services3_components.log.ILogger module
- pip_services3_components.log.LogLevel module
- pip_services3_components.log.LogLevelConverter module
- pip_services3_components.log.LogMessage module
- pip_services3_components.log.Logger module
- pip_services3_components.log.NullLogger module
Module contents
pip_services3_components.log.__init__
Logger implementations. There exist many different loggers, but all of them are implemented differently in various languages. We needed portable classes, that would allow to quickly transfer code from one language to another. We can wrap existing loggers into/around our ILogger class.
- copyright
Conceptual Vision Consulting LLC 2018-2019, see AUTHORS for more details.
- license
MIT, see LICENSE for more details.
-
class
pip_services3_components.log.
CachedLogger
Bases:
pip_services3_components.log.Logger.Logger
,pip_services3_commons.config.IReconfigurable.IReconfigurable
Abstract logger that caches captured log messages in memory and periodically dumps them. Child classes implement saving cached messages to their specified destinations.
- ### Configuration parameters ###
level: maximum log level to capture
source: source (context) name
- options:
interval: interval in milliseconds to save log messages (default: 10 seconds)
max_cache_size: maximum number of messages stored in this cache (default: 100)
- ### References ###
*:context-info:*:*:1.0 (optional)
ContextInfo
to detect the context id and specify counters source
-
clear
() Clears (removes) all cached log messages.
-
configure
(config: pip_services3_commons.config.ConfigParams.ConfigParams) Configures component by passing configuration parameters.
- Parameters
config – configuration parameters to be set.
-
dump
() Dumps (writes) the currently cached log messages.
-
class
pip_services3_components.log.
CompositeLogger
(references: pip_services3_commons.refer.IReferences.IReferences = None) Bases:
pip_services3_components.log.Logger.Logger
,pip_services3_commons.refer.IReferenceable.IReferenceable
Aggregates all loggers from component references under a single component.
It allows to log messages and conveniently send them to multiple destinations.
- ### References ###
*:logger:*:*:1.0 (optional)
ILogger
components to pass log messages
Example:
class MyComponent(IConfigurable, IReferenceable): __logger = CompositeLogger() def configure(self, config): self.__logger.configure(config) def set_references(self, references): self.__logger.set_references(references) def my_method(self, correlation_id): self.__logger.debug(correlation_id, "Called method mycomponent.mymethod")
-
set_references
(references: pip_services3_commons.refer.IReferences.IReferences) Sets references to dependent components.
- Parameters
references – references to locate the component dependencies.
-
class
pip_services3_components.log.
ConsoleLogger
Bases:
pip_services3_components.log.Logger.Logger
Logger that writes log messages to console.
Errors are written to standard err stream and all other messages to standard out stream.
- ### Configuration parameters ###
level: maximum log level to capture
source: source (context) name
- ### References ###
*:context-info:*:*:1.0 (optional)
ContextInfo
to detect the context id and specify counters source
Example:
logger = ConsoleLogger() logger.set_level(LogLevel.debug) logger.error("123", ex, "Error occured: %s", ex.message) logger.debug("123", "Everything is OK.")
-
class
pip_services3_components.log.
DefaultLoggerFactory
Bases:
pip_services3_components.build.Factory.Factory
Creates
ILogger
components by their descriptors.See
Factory
,NullLogger
,ConsoleLogger
,CompositeLogger
-
CompositeLoggerDescriptor
= <pip_services3_commons.refer.Descriptor.Descriptor object>
-
ConsoleLoggerDescriptor
= <pip_services3_commons.refer.Descriptor.Descriptor object>
-
NullLoggerDescriptor
= <pip_services3_commons.refer.Descriptor.Descriptor object>
-
-
class
pip_services3_components.log.
ILogger
Bases:
abc.ABC
Interface for logger components that capture execution log messages.
-
debug
(correlation_id: Optional[str], message: str, *args: Any, **kwargs: Any) Logs a high-level debug information for troubleshooting.
- Parameters
correlation_id – (optional) transaction id to trace execution through call chain.
message – a human-readable message to log.
args – arguments to parameterize the message.
kwargs – arguments to parameterize the message.
-
error
(correlation_id: Optional[str], error: Exception, message: str, *args: Any, **kwargs: Any) Logs recoverable application error.
- Parameters
correlation_id – (optional) transaction id to trace execution through call chain.
error – an error object associated with this message.
message – a human-readable message to log.
args – arguments to parameterize the message.
kwargs – arguments to parameterize the message.
-
fatal
(correlation_id: Optional[str], error: Exception, message: str, *args: Any, **kwargs: Any) Logs fatal (unrecoverable) message that caused the process to crash.
- Parameters
correlation_id – (optional) transaction id to trace execution through call chain.
error – an error object associated with this message.
message – a human-readable message to log.
args – arguments to parameterize the message.
kwargs – arguments to parameterize the message.
-
get_level
() → <module ‘pip_services3_components.log.LogLevel’ from ‘/pip_services3_components/log/LogLevel.py’> Gets the maximum log level. Messages with higher log level are filtered out.
- Returns
the maximum log level.
-
info
(correlation_id: Optional[str], message: str, *args: Any, **kwargs: Any) Logs an important information message
- Parameters
correlation_id – (optional) transaction id to trace execution through call chain.
message – a human-readable message to log.
args – arguments to parameterize the message.
kwargs – arguments to parameterize the message.
-
log
(level: <module 'pip_services3_components.log.LogLevel' from '/pip_services3_components/log/LogLevel.py'>, correlation_id: Optional[str], error: Optional[Exception], message: Optional[str], *args: Any, **kwargs: Any) Logs a message at specified log level.
- Parameters
level – a log level.
correlation_id – (optional) transaction id to trace execution through call chain.
error – an error object associated with this message.
message – a human-readable message to log.
args – arguments to parameterize the message.
kwargs – arguments to parameterize the message.
-
set_level
(level: <module 'pip_services3_components.log.LogLevel' from '/pip_services3_components/log/LogLevel.py'>) Set the maximum log level.
- Parameters
level – a new maximum log level.
-
trace
(correlation_id: Optional[str], message: str, *args: Any, **kwargs: Any) Logs a low-level debug information for troubleshooting.
- Parameters
correlation_id – (optional) transaction id to trace execution through call chain.
message – a human-readable message to log.
args – arguments to parameterize the message.
kwargs – arguments to parameterize the message.
-
warn
(correlation_id: Optional[str], message: Exception, *args: Any, **kwargs: Any) Logs a warning that may or may not have a negative impact.
- Parameters
correlation_id – (optional) transaction id to trace execution through call chain.
message – a human-readable message to log.
args – arguments to parameterize the message.
kwargs – arguments to parameterize the message.
-
-
class
pip_services3_components.log.
LogLevel
Bases:
object
Standard log levels.
Logs at debug and trace levels are usually captured only locally for troubleshooting and never sent to consolidated log services.
-
Debug
= 5 Logs everything up to high-level debugging information
-
Error
= 2 Logs all errors - fatal or recoverable
-
Fatal
= 1 Logs only fatal errors that cause microservice to fail
-
Info
= 4 Logs errors and important information messages
-
Nothing
= 0 Nothing to be logged
-
Trace
= 6 Logs everything down to fine-granular debugging messages
-
Warn
= 3 Logs errors and warnings
-
-
class
pip_services3_components.log.
LogLevelConverter
Bases:
object
Helper class to convert log level values.
-
static
to_integer
(level: pip_services3_components.log.LogLevel.LogLevel) → int Converts log level to a number.
- Parameters
level – a log level to convert.
- Returns
log level number value.
-
static
to_log_level
(value: Any, default_value: pip_services3_components.log.LogLevel.LogLevel = 4) → pip_services3_components.log.LogLevel.LogLevel Converts numbers and strings to standard log level values.
- Parameters
value – a value to be converted
default_value – a default value if conversion is not possible
- Returns
converted log level
-
static
to_string
(level: pip_services3_components.log.LogLevel.LogLevel) → str Converts log level to a string.
- Parameters
level – a log level to convert
- Returns
log level name string.
-
static
-
class
pip_services3_components.log.
LogMessage
(level: <module 'pip_services3_components.log.LogLevel' from '/pip_services3_components/log/LogLevel.py'> = None, source: str = None, correlation_id: Optional[str] = None, error: pip_services3_commons.errors.ErrorDescription.ErrorDescription = None, message: str = None) Bases:
object
Data object to store captured log messages. This object is used by
CachedLogger
.
-
class
pip_services3_components.log.
Logger
Bases:
pip_services3_components.log.ILogger.ILogger
,pip_services3_commons.config.IReconfigurable.IReconfigurable
,pip_services3_commons.refer.IReferenceable.IReferenceable
,abc.ABC
Abstract logger that captures and formats log messages. Child classes take the captured messages and write them to their specific destinations.
### Configuration parameters ###
Parameters to pass to the
configure()
method for component configuration:level: maximum log level to capture
source: source (context) name
- ### References ###
*:context-info:*:*:1.0 (optional)
ContextInfo
to detect the context id and specify counters source
-
configure
(config: pip_services3_commons.config.ConfigParams.ConfigParams) Configures component by passing configuration parameters.
- Parameters
config – configuration parameters to be set.
-
debug
(correlation_id: Optional[str], message: str, *args: Any, **kwargs: Any) Logs a high-level debug information for troubleshooting.
- Parameters
correlation_id – (optional) transaction id to trace execution through call chain.
message – a human-readable message to log.
args – arguments to parameterize the message.
kwargs – arguments to parameterize the message.
-
error
(correlation_id: Optional[str], error: Exception, message: str, *args: Any, **kwargs: Any) Logs recoverable application error.
- Parameters
correlation_id – (optional) transaction id to trace execution through call chain.
error – an error object associated with this message.
message – a human-readable message to log.
args – arguments to parameterize the message.
kwargs – arguments to parameterize the message.
-
fatal
(correlation_id: Optional[str], error: Exception, message: str, *args: Any, **kwargs: Any) Logs fatal (unrecoverable) message that caused the process to crash.
- Parameters
correlation_id – (optional) transaction id to trace execution through call chain.
error – an error object associated with this message.
message – a human-readable message to log.
args – arguments to parameterize the message.
kwargs – arguments to parameterize the message.
-
get_level
() → pip_services3_components.log.LogLevel.LogLevel Gets the maximum log level. Messages with higher log level are filtered out.
- Returns
the maximum log level.
-
info
(correlation_id: Optional[str], message: str, *args: Any, **kwargs: Any) Logs an important information message
- Parameters
correlation_id – (optional) transaction id to trace execution through call chain.
message – a human-readable message to log.
args – arguments to parameterize the message.
kwargs – arguments to parameterize the message.
-
log
(level: pip_services3_components.log.LogLevel.LogLevel, correlation_id: Optional[str], error: Optional[Exception], message: Optional[str], *args: Any, **kwargs: Any) Logs a message at specified log level.
- Parameters
level – a log level.
correlation_id – (optional) transaction id to trace execution through call chain.
error – an error object associated with this message.
message – a human-readable message to log.
args – arguments to parameterize the message.
kwargs – arguments to parameterize the message.
-
set_level
(level: pip_services3_components.log.LogLevel.LogLevel) Set the maximum log level.
- Parameters
level – a new maximum log level.
-
set_references
(references: pip_services3_commons.refer.IReferences.IReferences) Sets references to dependent components.
- Parameters
references – references to locate the component dependencies.
-
set_source
(value: str) Sets the source (context) name.
- Parameters
value – a new source (context) name.
-
trace
(correlation_id: Optional[str], message: str, *args: Any, **kwargs: Any) Logs a low-level debug information for troubleshooting.
- Parameters
correlation_id – (optional) transaction id to trace execution through call chain.
message – a human-readable message to log.
args – arguments to parameterize the message.
kwargs – arguments to parameterize the message.
-
warn
(correlation_id: Optional[str], message: str, *args: Any, **kwargs: Any) Logs a warning that may or may not have a negative impact.
- Parameters
correlation_id – (optional) transaction id to trace execution through call chain.
message – a human-readable message to log.
args – arguments to parameterize the message.
kwargs – arguments to parameterize the message.
-
class
pip_services3_components.log.
NullLogger
Bases:
pip_services3_components.log.ILogger.ILogger
Dummy implementation of logger that doesn’t do anything. It can be used in testing or in situations when logger is required but shall be disabled.
-
debug
(correlation_id: Optional[str], message: str, *args: Any, **kwargs: Any) Logs a high-level debug information for troubleshooting.
- Parameters
correlation_id – (optional) transaction id to trace execution through call chain.
message – a human-readable message to log.
args – arguments to parameterize the message.
kwargs – arguments to parameterize the message.
-
error
(correlation_id: Optional[str], error: Exception, message: str, *args: Any, **kwargs: Any) Logs recoverable application error.
- Parameters
correlation_id – (optional) transaction id to trace execution through call chain.
error – an error object associated with this message.
message – a human-readable message to log.
args – arguments to parameterize the message.
kwargs – arguments to parameterize the message.
-
fatal
(correlation_id: Optional[str], error: Exception, message: str, *args: Any, **kwargs: Any) Logs fatal (unrecoverable) message that caused the process to crash.
- Parameters
correlation_id – (optional) transaction id to trace execution through call chain.
error – an error object associated with this message.
message – a human-readable message to log.
args – arguments to parameterize the message.
kwargs – arguments to parameterize the message.
-
get_level
() → pip_services3_components.log.LogLevel.LogLevel Gets the maximum log level. Messages with higher log level are filtered out.
- Returns
the maximum log level.
-
info
(correlation_id: Optional[str], message: str, *args: Any, **kwargs: Any) Logs an important information message
- Parameters
correlation_id – (optional) transaction id to trace execution through call chain.
message – a human-readable message to log.
args – arguments to parameterize the message.
kwargs – arguments to parameterize the message.
-
log
(level: pip_services3_components.log.LogLevel.LogLevel, correlation_id: Optional[str], error: Optional[Exception], message: Optional[str], *args: Any, **kwargs: Any) Logs a message at specified log level.
- Parameters
level – a log level.
correlation_id – (optional) transaction id to trace execution through call chain.
error – an error object associated with this message.
message – a human-readable message to log.
args – arguments to parameterize the message.
kwargs – arguments to parameterize the message.
-
set_level
(level: pip_services3_components.log.LogLevel.LogLevel) Set the maximum log level.
- Parameters
level – a new maximum log level.
-
trace
(correlation_id: Optional[str], message: str, *args: Any, **kwargs: Any) Logs a low-level debug information for troubleshooting.
- Parameters
correlation_id – (optional) transaction id to trace execution through call chain.
message – a human-readable message to log.
args – arguments to parameterize the message.
kwargs – arguments to parameterize the message.
-
warn
(correlation_id: Optional[str], message: str, *args: Any, **kwargs: Any) Logs a warning that may or may not have a negative impact.
- Parameters
correlation_id – (optional) transaction id to trace execution through call chain.
message – a human-readable message to log.
args – arguments to parameterize the message.
kwargs – arguments to parameterize the message.
-