Skip to main content

This is a custom logger module for Python

Project description

loggerk

This is a custom logger module for Python

Enviroment variables required:

  • LOGGER_APP_NAME: The name of the App
  • LOGGER_URLS: a list of URLS to send the log requests to. Separated by commas.
  • LOGGER_CREDENTIALS: If needed, the credentials sent in the authorization header of the log request.

Usage

Import LoggerK from the loggerk mdoule

from loggerk import LoggerK

Then initialize the LoggerK class, and call the usual methods

logger = LoggerK(__name__)

logger.debug("This is a debug level message.")
logger.info("This is an info level message")
logger.warning("This is a warning level message")
logger.error("This is an error level message")
logger.critical("This is a critical level message")

The LoggerK initializer takes several arguments:

  • name: str
  • app_name: str
  • level: str | int
  • config: ConfigDict
  • file_path: str

The only required argument is name. The rest of the arguments are Optional.

app_name

Represents the name of the application in which the logger instance is being created. If it is not provided, it will be extracted from the environment as LOGGER_APP_NAME.

level

Is the default level for the logger, it can take integer values, however its recommended for better readability to use the Literal values defined in the class:

  • "DEBUG"
  • "INFO"
  • "WARNING"
  • "ERROR"
  • "CRITICAL"

When using handlers, if the handler does not define a logging level, this default level will be used.

config

A dictionary containing the configuration for the logger.

For more info on how to configure the logger check the logging.config Logging configuration.

The LoggerK initializer has a DEFAULT_CONFIG dictionary which includes three default handlers:

  • An StreamingHandler to the standar output.
  • A RotatingFileHandler that defaults to "logs/app.log"
  • A CustomHttpHandler that will make a post request for every log message to the first URL that returns a succesful response within the given URLs in the LOGGER_URLS env variable.

file_path

When given a value, will override every FileHandler inside the config dictionary.

Note:

Initializing two LoggerK instances with the same name will behave as a Singleton, so any new configuration to the new instance will affect all existing instances with the same name.

Example:

logger_1 = LoggerK("my_new_logger")

logger_2 = LoggerK(
    "my_new_logger", 
    config=SOME_CUSTOM_CONFIG,
)

# The new config on logger_2 will apply also for the logger_1 as they share the same name.

Configuring the log instance

If needed, the log instance can be configured after initialization by updating the ConfigDict in the Loggerk.config attribute.

Example:

logger = LoggerK(__name__)

current_config = logger.config # accessing the current configuration of the looger instance. This returns a copy of the config dictionary, so updating directly will have no efect on the actual configuration of the logger instance.

# updating the configuration
new_config = current_configuration["handlers"]["file"]["level"] = "ERROR" #changing the debug level of the file handler

# setting the new configuration to the logger instance
logger.config = new_configuration

Every time the value of config is set, the instance will be reconfigured, so all new configurations are applied.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

loggerk-0.0.4.tar.gz (10.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

loggerk-0.0.4-py3-none-any.whl (10.3 kB view details)

Uploaded Python 3

File details

Details for the file loggerk-0.0.4.tar.gz.

File metadata

  • Download URL: loggerk-0.0.4.tar.gz
  • Upload date:
  • Size: 10.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.4

File hashes

Hashes for loggerk-0.0.4.tar.gz
Algorithm Hash digest
SHA256 3f5fbb56afad0dc914edb323eb46196c7801e9b5e0b0f0af55a36c04883e279e
MD5 bd6ca64a67908f84c63e3f9026437d71
BLAKE2b-256 cec270e4670b5dc22633747b10face7549c82c58e8deb8d9e41d2c96da37a443

See more details on using hashes here.

File details

Details for the file loggerk-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: loggerk-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 10.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.4

File hashes

Hashes for loggerk-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 f49437491df739e46fe497c516871896c5bc217c1fb32e8db600caf25efcc691
MD5 61abd0b10673db25d3614950835379c4
BLAKE2b-256 30eb2af5005c8fcafb77e945b3800c5f6d386f0af8f744def12823d5ee9e5369

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page