# 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
Raw data
{
"_id": null,
"home_page": "https://github.com/chirichidi/scratch-pad-py",
"name": "scratchpad-py",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "",
"keywords": "logger",
"author": "chirichidi",
"author_email": "tolessnoise@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/4c/73/29e6312273b38d41bc81c9f40ebadcb5b0eaca4f45e0c57f6990aa7c711c/scratchpad-py-0.0.6.tar.gz",
"platform": null,
"description": "# scratch-pad-py\n\n## Projects that have been ported below.\nhttps://github.com/polonaiz/scratch-pad\n\n\nmind blowing python toolset. why not pr?\n\n\n# Spec\n\nLoggers: composite, console, file, fluent, jandi, line, memory, null, scribe, telegram, slack\n\n\n\n# Logger interface\n```\nfrom .logger_interface import LoggerInterface\n\nclass Logger(LoggerInterface):\n logger: LoggerInterface = None\n\n @classmethod\n def setLogger(cls, logger: LoggerInterface):\n cls.logger = logger\n\n @classmethod\n def getLogger(cls) -> LoggerInterface:\n return cls.logger\n\n @classmethod\n def info(cls, message: dict, option: dict = {}):\n cls.logger.info(message, option)\n\n @classmethod\n def notice(cls, message: dict, option: dict = {}):\n cls.logger.notice(message, option)\n\n @classmethod\n def warning(cls, message: dict, option: dict = {}):\n cls.logger.warning(message, option)\n\n @classmethod\n def error(cls, message: dict, option: dict = {}):\n cls.logger.error(message, option)\n\n @classmethod\n def critical(cls, message: dict, option: dict = {}):\n cls.logger.critical(message, option)\n```\n\n\n\n# Usage\nFileLogger\n```\nfilePath = \"/tmp/scratch-pad-python.log\"\nlogger = FileLogger(\n config={\n \"filePath\": filePath,\n \"truncate\": True\n }\n)\nmessage = {\n \"type\": \"file\",\n \"message\": \"hello world\"\n}\nlogger.info(message)\n```\nCompositeLogger\n```\nconsoleLogger = ConsoleLogger(\n config={\n \"appendNewLine\": 1\n }\n)\nmemoryLogger = MemoryLogger()\nmemoryLoggerCompositeFilter = CompositeLogger.getSelectorLevel([\"info\", \"error\"])\n\nmessage = {\n \"type\": \"composite\",\n \"message\": \"hello world\"\n}\n\ncompositLogger = CompositeLogger(\n config={\n \"defaults\": {\n \"datetime\": lambda: datetime.now().strftime(\"%Y-%m-%d %H:%M:%S\"),\n \"program\": \"scratch-pad-python\",\n },\n \"loggerFilterPairs\": [\n {\n \"logger\": consoleLogger,\n \"filter\": None\n },\n {\n \"logger\": memoryLogger,\n \"filter\": memoryLoggerCompositeFilter\n }\n ],\n }\n)\n\ncompositLogger.info(message)\n```\n\nJandiLogger\n```\nurl = \"url\"\nlogger = JandiLogger(\n url=url\n)\n\nmessage = {\n \"type\": \"jandi\",\n \"message\": \"hello world\"\n}\n\nlogger.info(message)\n```\n\nTelegramLogger\n```\ntoken = \"telegram\"\nchat_id = 1234\n\nmessage = {\n \"type\": \"telegram\",\n \"message\": \"hello world\",\n}\n\nlogger = TelegramLogger(\n chat_id=chat_id,\n token=token,\n)\n\nlogger.info(message)\n```\n\nFluentLogger\n```\nlogger = FluentLogger()\nmessage = {\n \"type\": \"fluent\",\n \"message\": \"hello world\"\n }\n\nlogger.info(message)\n```\n\nSlackLogger\n```\nurl = \"url\"\nlogger = SlackLogger(url=url)\nmessage = {\n \"type\": \"slack\",\n \"message\": \"hello world\"\n}\n\nlogger.info(message)\n```\n\n#\nstuff) \n\n\nscribe-docker for ScribeLogger : https://hub.docker.com/r/polonaiz/facebook-scribe\n\n\nfluent-docker for FluentLogger : https://github.com/chirichidi/fluent-docker/tree/main\n",
"bugtrack_url": null,
"license": "",
"summary": "python logger libary",
"version": "0.0.6",
"project_urls": {
"Homepage": "https://github.com/chirichidi/scratch-pad-py"
},
"split_keywords": [
"logger"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "c8c84736944f765a5b418633062141af38c3beff3bd459ea320f72c2e24590c1",
"md5": "dddd6c512df96039e881a1a9e2a60026",
"sha256": "bc936bebd83c066130e86f9d9cdcd1169f0c4f8c79ae66f5558be36e36f7ae92"
},
"downloads": -1,
"filename": "scratchpad_py-0.0.6-py3-none-any.whl",
"has_sig": false,
"md5_digest": "dddd6c512df96039e881a1a9e2a60026",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 11782,
"upload_time": "2023-06-13T12:06:21",
"upload_time_iso_8601": "2023-06-13T12:06:21.175302Z",
"url": "https://files.pythonhosted.org/packages/c8/c8/4736944f765a5b418633062141af38c3beff3bd459ea320f72c2e24590c1/scratchpad_py-0.0.6-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "4c7329e6312273b38d41bc81c9f40ebadcb5b0eaca4f45e0c57f6990aa7c711c",
"md5": "f26f0ce8d2380f94923b11e31bdb3944",
"sha256": "bbe58d3f7b7dfbdeae6b4beeda0c2d801aa6427c11640bf28a83579de19a3db9"
},
"downloads": -1,
"filename": "scratchpad-py-0.0.6.tar.gz",
"has_sig": false,
"md5_digest": "f26f0ce8d2380f94923b11e31bdb3944",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 7131,
"upload_time": "2023-06-13T12:06:24",
"upload_time_iso_8601": "2023-06-13T12:06:24.928187Z",
"url": "https://files.pythonhosted.org/packages/4c/73/29e6312273b38d41bc81c9f40ebadcb5b0eaca4f45e0c57f6990aa7c711c/scratchpad-py-0.0.6.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-06-13 12:06:24",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "chirichidi",
"github_project": "scratch-pad-py",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [],
"lcname": "scratchpad-py"
}