{ "info": { "author": "Clifford Bressette", "author_email": "cliffbressette@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Natural Language :: English", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "========\npysyslog\n========\n\n\n.. image:: https://img.shields.io/pypi/v/pysyslog.svg\n :target: https://pypi.python.org/pypi/pysyslog\n\n.. image:: https://img.shields.io/travis/ilovetux/pysyslog.svg\n :target: https://travis-ci.org/ilovetux/pysyslog\n\n.. image:: https://readthedocs.org/projects/pysyslog/badge/?version=latest\n :target: https://pysyslog.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\n\n\n\nFast, efficient and useful syslog collector using TCP and optional TLS\n\n\n* Free software: GNU General Public License v3\n* Documentation: https://pysyslog.readthedocs.io.\n\nFeatures\n--------\n\n* TLS support\n* Persistent TCP connections\n* Flexible logging configuration (powered by Python's logging module)\n* Fast\n\n\nAbout\n-----\n\npysyslog is a fast and flexible Syslog-over-TCP collector written in Python\nwith TLS support.\n\nIn order to achieve the speed required, we have made some compromises the most\nnotable one is that we do not attempt to be compliant with any RFCs. We do not\nparse any of the messages nor do we offer any syslog-specific functionality. That\nbeing said, since syslog is just plain-text over a transport we should be\ninteroperable with most (if not all) syslog clients.\n\nInstallation\n------------\n\nyou can install with::\n\n $ pip install pysyslog\n\nUsage\n-----\n\nTo start a local syslog collector (listening on TCP 127.0.0.1:514) you can\nissue the following command::\n\n $ pysyslog\n\nIf you want to customize the listening host and port they can be passed as\npositional arguments respectively. For instance, if you want to listen on\nall available interfaces at port 8000 you can issue the following command::\n\n $ pysyslog 0.0.0.0 8000\n\nIf you want to enable TLS, you must provide the path to the key and cert\n(must be in PEM format) you can issue the following command::\n\n $ pysyslog --cert /path/to/cert.pem --key /path/to/key.pem\n\nIf the key and cert are contained within the same file, you must pass that file\npath to both the `--key` and `--cert`::\n\n $ pysyslog --cert /path/to/key-and-cert.pem --key /path/to/key-and-cert.pem\n\nAll log messages will be sent to stdout. If you want to customize the\ndestination, you must provide a logging configuration in json format::\n\n $ pysyslog --logging-config /path/to/logging.json\n\nAnd in `logging.json`, something like this would send everything to stdout\nand also send everything from 127.0.0.1 to a file `./localhost.log`::\n\n {\n \"version\": 1,\n \"root\": {\n \"level\": \"DEBUG\",\n \"propagate\": true,\n \"handlers\": [\"stdout\"]\n },\n \"formatters\": {\n \"brief\": {\n \"format\": \"%(asctime)s %(message)s\"\n }\n },\n \"handlers\": {\n \"stdout\": {\n \"class\": \"logging.StreamHandler\",\n \"formatter\": \"brief\",\n \"level\": \"DEBUG\",\n \"stream\": \"ext://sys.stdout\"\n },\n \"localhost-file\": {\n \"class\": \"logging.FileHandler\",\n \"formatter\": \"brief\",\n \"level\": \"DEBUG\",\n \"filename\": \"./localhost.log\",\n \"delay\": true\n }\n },\n \"loggers\": {\n \"127.0.0.1\": {\n \"handlers\": [\"localhost-file\"],\n \"level\": \"DEBUG\",\n \"propagate\": true\n }\n }\n }\n\nfor more information on the logging configuration format please see\nhttps://docs.python.org/3/library/logging.config.html#configuration-dictionary-schema\n\nArchitecture\n------------\n\nThe Python's socketserver module provides the TCP server functionality. When\na client connects, a thread is spawned and the socket will be polled for data.\nThese connections are not closed after receiving one message, rather we utilize\nthe streaming capabilities of TCP to keep these connections open so we do not\nneed to perform our three-way-handshake more than once unless the client closes\nthe connection.\n\nOnce a connection is established each line received will be placed on a queue. The\nqueue is read by a seperate writer process. Which then submits the message to\nthe Python logging system through a logger named after the IP Address of the\nremote peer. This allows a fine-grained configuration where the output can be\nsent to many destinations such as a file, stdout or even another syslog\ncollector.\n\nCredits\n-------\n\nThis package was created with Cookiecutter_ and the `audreyr/cookiecutter-pypackage`_ project template.\n\n.. _Cookiecutter: https://github.com/audreyr/cookiecutter\n.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage\n\n\n=======\nHistory\n=======\n\n0.1.0 (2018-07-20)\n------------------\n\n* First release on PyPI.\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ilovetux/pysyslog", "keywords": "pysyslog", "license": "GNU General Public License v3", "maintainer": "", "maintainer_email": "", "name": "pysyslog", "package_url": "https://pypi.org/project/pysyslog/", "platform": "", "project_url": "https://pypi.org/project/pysyslog/", "project_urls": { "Homepage": "https://github.com/ilovetux/pysyslog" }, "release_url": "https://pypi.org/project/pysyslog/0.1.0/", "requires_dist": null, "requires_python": "", "summary": "Fast, efficient and useful syslog collector using TCP and optional TLS", "version": "0.1.0" }, "last_serial": 4104450, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "44ca04e8ce5ec39d3756ab8d80926375", "sha256": "a36698fcb8646c3df9b1837258d18e5f0c1083329abc24aa99cf9f38170a93d0" }, "downloads": -1, "filename": "pysyslog-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "44ca04e8ce5ec39d3756ab8d80926375", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 5489, "upload_time": "2018-07-26T13:18:04", "url": "https://files.pythonhosted.org/packages/41/c7/643022399b208f2dc6626b3adc8b36a9fb7ee72434be08d8d910557ec7ef/pysyslog-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "82f07640d71216b8c7855daddcd824db", "sha256": "0ddac17771b4b9eaceb6aeaa6e400ffffa7c3e7ac00a746c06b25ccd25eb75ff" }, "downloads": -1, "filename": "pysyslog-0.1.0.tar.gz", "has_sig": false, "md5_digest": "82f07640d71216b8c7855daddcd824db", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11329, "upload_time": "2018-07-26T13:18:03", "url": "https://files.pythonhosted.org/packages/bb/61/db11c55464b65325b9ce5fcdffce67968a524ad3a8c149c8482e64efe894/pysyslog-0.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "44ca04e8ce5ec39d3756ab8d80926375", "sha256": "a36698fcb8646c3df9b1837258d18e5f0c1083329abc24aa99cf9f38170a93d0" }, "downloads": -1, "filename": "pysyslog-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "44ca04e8ce5ec39d3756ab8d80926375", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 5489, "upload_time": "2018-07-26T13:18:04", "url": "https://files.pythonhosted.org/packages/41/c7/643022399b208f2dc6626b3adc8b36a9fb7ee72434be08d8d910557ec7ef/pysyslog-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "82f07640d71216b8c7855daddcd824db", "sha256": "0ddac17771b4b9eaceb6aeaa6e400ffffa7c3e7ac00a746c06b25ccd25eb75ff" }, "downloads": -1, "filename": "pysyslog-0.1.0.tar.gz", "has_sig": false, "md5_digest": "82f07640d71216b8c7855daddcd824db", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11329, "upload_time": "2018-07-26T13:18:03", "url": "https://files.pythonhosted.org/packages/bb/61/db11c55464b65325b9ce5fcdffce67968a524ad3a8c149c8482e64efe894/pysyslog-0.1.0.tar.gz" } ] }