Skip to main content

python logger libary

Project description

scratch-pad-py

Projects that have been ported below.

https://github.com/polonaiz/scratch-pad

mind blowing python toolset. why not pr?

Spec

Loggers: composite, console, file, fluent, jandi, line, memory, null, scribe, telegram, slack

Logger interface

from .logger_interface import LoggerInterface

class Logger(LoggerInterface):
    logger: LoggerInterface = None

    @classmethod
    def setLogger(cls, logger: LoggerInterface):
        cls.logger = logger

    @classmethod
    def getLogger(cls) -> LoggerInterface:
        return cls.logger

    @classmethod
    def info(cls, message: dict, option: dict = {}):
        cls.logger.info(message, option)

    @classmethod
    def notice(cls, message: dict, option: dict = {}):
        cls.logger.notice(message, option)

    @classmethod
    def warning(cls, message: dict, option: dict = {}):
        cls.logger.warning(message, option)

    @classmethod
    def error(cls, message: dict, option: dict = {}):
        cls.logger.error(message, option)

    @classmethod
    def critical(cls, message: dict, option: dict = {}):
        cls.logger.critical(message, option)

Usage

FileLogger

filePath = "/tmp/scratch-pad-python.log"
logger = FileLogger(
    config={
        "filePath": filePath,
        "truncate": True
    }
)
message = {
    "type": "file",
    "message": "hello world"
}
logger.info(message)

CompositeLogger

consoleLogger = ConsoleLogger(
        config={
        "appendNewLine": 1
    }
)
memoryLogger = MemoryLogger()
memoryLoggerCompositeFilter = CompositeLogger.getSelectorLevel(["info", "error"])

message = {
    "type": "composite",
    "message": "hello world"
}

compositLogger = CompositeLogger(
    config={
        "defaults": {
            "datetime": lambda: datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
            "program": "scratch-pad-python",
        },
        "loggerFilterPairs": [
            {
                "logger": consoleLogger,
                "filter": None
            },
            {
                "logger": memoryLogger,
                "filter": memoryLoggerCompositeFilter
            }
        ],
    }
)

compositLogger.info(message)

JandiLogger

url = "url"
logger = JandiLogger(
    url=url
)

message = {
    "type": "jandi",
    "message": "hello world"
}

logger.info(message)

TelegramLogger

token = "telegram"
chat_id = 1234

message = {
    "type": "telegram",
    "message": "hello world",
}

logger = TelegramLogger(
    chat_id=chat_id,
    token=token,
)

logger.info(message)

FluentLogger

logger = FluentLogger()
message = {
        "type": "fluent",
        "message": "hello world"
    }

logger.info(message)

SlackLogger

url = "url"
logger = SlackLogger(url=url)
message = {
    "type": "slack",
    "message": "hello world"
}

logger.info(message)

stuff)

scribe-docker for ScribeLogger : https://hub.docker.com/r/polonaiz/facebook-scribe

fluent-docker for FluentLogger : https://github.com/chirichidi/fluent-docker/tree/main

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

scratchpad_py-0.0.7.tar.gz (7.0 kB view details)

Uploaded Source

Built Distribution

scratchpad_py-0.0.7-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

Details for the file scratchpad_py-0.0.7.tar.gz.

File metadata

  • Download URL: scratchpad_py-0.0.7.tar.gz
  • Upload date:
  • Size: 7.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.8.12

File hashes

Hashes for scratchpad_py-0.0.7.tar.gz
Algorithm Hash digest
SHA256 4ae4bdd9b880309dbecca47164256fad28590f3d8b010922702bf8397375da34
MD5 877b5587df086a792a72940d0e728987
BLAKE2b-256 a751191cc8f606ea292cf2eabe2c6263b8597dd6b8f4043aa7392887b253f942

See more details on using hashes here.

File details

Details for the file scratchpad_py-0.0.7-py3-none-any.whl.

File metadata

File hashes

Hashes for scratchpad_py-0.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 42acffa51c0d96ce51f191cedb2e818b711bf364f9423409c9cf81ec04276119
MD5 362fa39222cdb0b757aff80162dff942
BLAKE2b-256 2584a113fa47a2e5ced2329360d98cb696655016b3163de4615dcb89f5393630

See more details on using hashes here.

Supported by

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