{"id":29347171,"url":"https://github.com/hongquan/structlog-journald","last_synced_at":"2026-01-20T17:27:48.499Z","repository":{"id":300403012,"uuid":"1006062162","full_name":"hongquan/structlog-journald","owner":"hongquan","description":"Structlog processor to send logs to journald","archived":false,"fork":false,"pushed_at":"2025-07-03T05:32:52.000Z","size":115,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-03T05:37:57.663Z","etag":null,"topics":["journald","logging","structlog"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/structlog-journald/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hongquan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-21T12:06:23.000Z","updated_at":"2025-07-03T05:33:33.000Z","dependencies_parsed_at":"2025-06-21T14:27:27.270Z","dependency_job_id":"f60463ed-5bb8-4b4c-bdc6-53e21a47b091","html_url":"https://github.com/hongquan/structlog-journald","commit_stats":null,"previous_names":["hongquan/structlog-journald"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/hongquan/structlog-journald","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hongquan%2Fstructlog-journald","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hongquan%2Fstructlog-journald/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hongquan%2Fstructlog-journald/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hongquan%2Fstructlog-journald/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hongquan","download_url":"https://codeload.github.com/hongquan/structlog-journald/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hongquan%2Fstructlog-journald/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264324954,"owners_count":23590992,"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":["journald","logging","structlog"],"created_at":"2025-07-08T18:41:20.095Z","updated_at":"2026-01-20T17:27:48.480Z","avatar_url":"https://github.com/hongquan.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# structlog-journald\n\n![made-in-vietnam](https://madewithlove.vercel.app/vn?heart=true\u0026colorA=%23ffcd00\u0026colorB=%23da251d)\n[![structlog-journald](https://badge.fury.io/py/structlog-journald.svg)](https://pypi.org/project/structlog-journald/)\n[![ReadTheDocs](https://readthedocs.org/projects/structlog-journald/badge/?version=latest)](https://structlog-journald.readthedocs.io?badge=latest)\n[![Common Changelog](https://common-changelog.org/badge.svg)](https://common-changelog.org)\n\n[Structlog] processor to send logs to [journald].\n\nDocumentation: [https://structlog-journald.readthedocs.io](https://structlog-journald.readthedocs.io)\n\nInstallation\n------------\n\nTo install `structlog-journald`, run:\n\n```sh\npip install structlog-journald\n```\n\nYou also need to install one of the journald binding implementations:\n\n- CPython-based [`systemd-python`](https://pypi.org/project/systemd-python/).\n- Cython-based [`cysystemd`](https://pypi.org/project/cysystemd/).\n\nUsage\n-----\n\nAdd the `structlog_journald.JournaldProcessor` to your list of `structlog` processors.\nIt will do nothing if the journald socket is not available,\nin other words, the app was not started by systemd.\n\nTo let the log have more useful information, you should also add these processors before `JournaldProcessor`:\n\n- `CallsiteParameterAdder`\n- `format_exc_info`\n\nExample:\n\n```py\nimport getpass\nimport logging\nimport platform\n\nimport structlog\n\nfrom structlog_journald import JournaldProcessor\n\n\nstructlog.configure(\n    processors=[\n        structlog.contextvars.merge_contextvars,\n        structlog.processors.add_log_level,\n        structlog.processors.CallsiteParameterAdder(),\n        structlog.processors.format_exc_info,\n        structlog.dev.set_exc_info,\n        structlog.processors.TimeStamper(fmt='%Y-%m-%d %H:%M:%S', utc=False),\n        structlog.processors.EventRenamer('message'),\n        JournaldProcessor(),\n        # This processor should be added for development environment only.\n        structlog.dev.ConsoleRenderer(),\n    ],\n    # In this example, we want to print log entries of all levels\n    wrapper_class=structlog.make_filtering_bound_logger(logging.NOTSET),\n    context_class=dict,\n    logger_factory=structlog.WriteLoggerFactory(),\n    cache_logger_on_first_use=True,\n)\n\nlog = structlog.stdlib.get_logger()\n\nuser = getpass.getuser()\n\n\nlog.info('Current Linux user: %s', user, linux=platform.freedesktop_os_release())\nlog.warning('This is a warning.', platform=platform.platform())\ntry:\n    int('abc')\nexcept ValueError:\n    log.exception('Failed to convert string to integer.')\n```\n\n![Journalctl](https://raw.githubusercontent.com/hongquan/structlog-journald/refs/heads/main/misc/screenshot.png)\n\n[structlog]: https://www.structlog.org\n[journald]: https://www.freedesktop.org/software/systemd/man/latest/journalctl.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhongquan%2Fstructlog-journald","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhongquan%2Fstructlog-journald","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhongquan%2Fstructlog-journald/lists"}