{"id":17560146,"url":"https://github.com/vd2org/betterlogging","last_synced_at":"2025-04-28T10:29:31.423Z","repository":{"id":50249536,"uuid":"304750602","full_name":"vd2org/betterlogging","owner":"vd2org","description":"Improved version of the standard logger.","archived":false,"fork":false,"pushed_at":"2024-02-05T07:59:26.000Z","size":70,"stargazers_count":9,"open_issues_count":2,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-12T18:18:38.458Z","etag":null,"topics":["debugging","log","logger","logging","logging-library","python","python3"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vd2org.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-10-16T22:24:47.000Z","updated_at":"2024-02-05T08:24:51.000Z","dependencies_parsed_at":"2023-01-23T16:31:38.993Z","dependency_job_id":null,"html_url":"https://github.com/vd2org/betterlogging","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vd2org%2Fbetterlogging","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vd2org%2Fbetterlogging/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vd2org%2Fbetterlogging/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vd2org%2Fbetterlogging/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vd2org","download_url":"https://codeload.github.com/vd2org/betterlogging/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251294762,"owners_count":21566333,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["debugging","log","logger","logging","logging-library","python","python3"],"created_at":"2024-10-21T11:23:53.142Z","updated_at":"2025-04-28T10:29:31.407Z","avatar_url":"https://github.com/vd2org.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BetterLogging\n\n\n![BetterLogging](https://telegra.ph/file/ebd3b272eb1969dd55f58.png \"BetterLogging\")\n\nImproved version of the standard logger.\n\n* Added `TRACE` level.\n* Added `ColorizedFormatter`.\n* Added better traceback formatting.\n\nThis package patching the standard `logging` library.\n\nThus, after import, all improvements will be available inside the `logging` module.\n\nBut for better typing, I prefer to use `betterlogging` everywhere.\n\n### Requirements\n\nPython 3.7 and above. No additional dependencies.\n\n### Installation\n\n`pip install betterlogging`\n\n### Usage\n\n#### Simple usage\n\n```python\nimport betterlogging as logging\n\n\nlogging.basic_colorized_config(level=logging.INFO)\n\nlogger = logging.getLogger('test')\n\nlogger.trace(\"some trace message\")\nlogger.debug(\"some debug message\")\nlogger.info(\"some info message\")\nlogger.warning(\"some warning message\")\nlogger.error(\"some error message\")\nlogger.critical(\"some critical message\")\n```\n\n#### More advanced usage\n\n```python\nimport betterlogging as logging\n\n\n# You can use shortcut:\nlogger = logging.get_colorized_logger(name=\"test\")\n\n# Or, if you want to configure formatter:\nhandler = logging.StreamHandler()\nhandler.setFormatter(logging.ColorizedFormatter(hide_lib_diagnose=False))\n\nlogger.addHandler(handler)\nlogger.setLevel(logging.TRACE)\n\nlogger.trace(\"some trace message\")\nlogger.debug(\"some debug message\")\nlogger.info(\"some info message\")\nlogger.warning(\"some warning message\")\nlogger.error(\"some error message\")\nlogger.critical(\"some critical message\")\n\ndef div(x: int, y: int) -\u003e float:\n    return x / y\n\ntry:\n    div(1, 0)\nexcept:\n    logger.exception(\"Some exception\")\n```\n\n#### Config for `uvicorn`\n\n```json\n{\n  \"version\": 1,\n  \"disable_existing_loggers\": false,\n  \"formatters\": {\n    \"default\": {\n      \"()\": \"betterlogging.ColorizedFormatter\"\n    },\n    \"access\": {\n      \"()\": \"betterlogging.ColorizedFormatter\",\n      \"fmt\": \"%(c_fg_green)s%(asctime)s %(c_color)s%(levelname)-8s%(c_reset)s %(c_fg_cyan)s[%(name)s] %(c_reset)s%(message)s\"\n    }\n  },\n  \"handlers\": {\n    \"default\": {\n      \"formatter\": \"default\",\n      \"class\": \"logging.StreamHandler\"\n    },\n    \"access\": {\n      \"formatter\": \"access\",\n      \"class\": \"logging.StreamHandler\",\n      \"stream\": \"ext://sys.stdout\"\n    }\n  },\n  \"loggers\": {\n    \"\": {\n      \"handlers\": [\n        \"default\"\n      ],\n      \"level\": \"DEBUG\"\n    },\n    \"uvicorn.error\": {\n      \"level\": \"INFO\"\n    },\n    \"uvicorn.access\": {\n      \"handlers\": [\n        \"access\"\n      ],\n      \"level\": \"INFO\",\n      \"propagate\": false\n    }\n  }\n}\n```\n\n```shell script\nuvicorn application:app --debug --reload --log-config ./logging.json\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvd2org%2Fbetterlogging","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvd2org%2Fbetterlogging","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvd2org%2Fbetterlogging/lists"}