{ "info": { "author": "Evax Software", "author_email": "contact@evax.fr", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable" ], "description": "loggerglue - Syslog protocol (rfc5424 and rfc5425) utilities\r\n============================================================\r\n\r\nloggerglue is intended to be a general purpose glue layer for the\r\nsyslog protocol as decribed in rfc5424__ and rfc5425__.\r\n\r\n__ http://tools.ietf.org/search/rfc5424\r\n__ http://tools.ietf.org/search/rfc5425\r\n\r\nThis package includes:\r\n\r\n* a pyparsing parser for rfc5424\r\n* a wrapper class for rfc5424 syslog entries\r\n* an emitter for syslog messages, and associated convenience classes\r\n* a SyslogServer class supporting TLS (rcf5425)\r\n\r\nA client example\r\n----------------\r\n\r\nLog a simple message with structured data to the local syslog daemon:\r\n\r\n::\r\n\r\n from loggerglue import logger\r\n from loggerglue.rfc5424 import SDElement\r\n from loggerglue.constants import *\r\n l = logger.Logger()\r\n l.log(prival=LOG_INFO|LOG_USER,\r\n msg=\"Test message\",\r\n structured_data=[\r\n SDElement(\"origin\",\r\n [(\"software\",\"test script\"), (\"swVersion\",\"0.0.1\")])\r\n ])\r\n\r\nA trivial server example\r\n------------------------\r\n\r\nA simple TLS enabled server can be built as follows:\r\n\r\n::\r\n\r\n from loggerglue.server import SyslogServer, SyslogHandler\r\n\r\n class SimpleHandler(SyslogHandler):\r\n def handle_entry(self, entry):\r\n print 'On %s from %s: %s' % \\\r\n (entry.timestamp, entry.hostname, entry.msg)\r\n\r\n s = SyslogServer(('127.0.0.1', 6514), SimpleHandler,\r\n keyfile='loggerglue-key.pem',\r\n certfile='loggerglue-cert.pem')\r\n s.serve_forever()\r\n\r\nHere's an example rsyslog__ configuration:\r\n\r\n__ http://www.rsyslog.com\r\n\r\n::\r\n\r\n $IncludeConfig /etc/rsyslog.d/*.conf\r\n\r\n $DefaultNetstreamDriverCAFile /path/to/loggerglue-ca-cert.pem\r\n $DefaultNetstreamDriver gtls\r\n $ActionSendStreamDriverMode 1\r\n $ActionSendStreamDriverAuthMode anon\r\n\r\n *.* @@(o)localhost:6514;RSYSLOG_SyslogProtocol23Format\r\n\r\nA more advanced server example\r\n------------------------------\r\n\r\nIn this exemple we index the log data as it comes using Whoosh__.\r\n\r\n__ https://bitbucket.org/mchaput/whoosh/wiki/Home\r\n\r\n::\r\n\r\n from loggerglue.server import SyslogServer, SyslogHandler\r\n from whoosh import index\r\n from whoosh.fields import *\r\n import os.path\r\n\r\n schema = Schema(prio=ID(stored=True),\r\n timestamp=DATETIME(stored=True),\r\n hostname=ID(stored=True),\r\n app_name=ID(stored=True),\r\n procid=ID(stored=True),\r\n msgid=ID(stored=True),\r\n msg=TEXT(stored=True)\r\n )\r\n\r\n if os.path.exists('indexdir'):\r\n ix = index.open_dir('indexdir')\r\n else:\r\n os.mkdir('indexdir')\r\n ix = index.create_in('indexdir', schema)\r\n\r\n class SimpleHandler(SyslogHandler):\r\n def handle_entry(self, entry):\r\n writer = ix.writer()\r\n writer.add_document(prio=entry.prival,\r\n timestamp=entry.timestamp,\r\n hostname=entry.hostname,\r\n app_name=entry.app_name,\r\n procid=entry.procid,\r\n msgid=entry.msgid,\r\n msg=entry.msg)\r\n writer.commit()\r\n\r\n s = SyslogServer(('127.0.0.1', 6514), SimpleHandler,\r\n keyfile='loggerglue-key.pem',\r\n certfile='loggerglue-cert.pem')\r\n s.serve_forever()\r\n\r\nAnd now a small search tool:\r\n\r\n::\r\n\r\n from whoosh import index\r\n from whoosh.qparser import QueryParser\r\n\r\n import sys\r\n if len(sys.argv) == 1:\r\n print 'usage: %s ' % sys.argv[0]\r\n sys.exit(1)\r\n\r\n ix = index.open_dir('indexdir')\r\n searcher = ix.searcher()\r\n query = QueryParser('msg').parse(' '.join(sys.argv[1:]))\r\n results = searcher.search(query)\r\n print '%d results\\n' % len(results)\r\n for r in results:\r\n print '%s\\n' % str(r)\r\n searcher.close()\r\n\r\n\r\n\r\n1.0 (25/03/2011)\r\n----------------\r\n\r\n* Wladimir van der Laan \r\n\r\n - Add Sphinx-based documentation and docstrings\r\n\r\n - Emitter for syslog messages, and associated convenience classes\r\n\r\n - Fixes for RFC 5424 edge cases\r\n\r\n - Allow multiple of the same key in STRUCTURED-DATA by representing\r\n the parameters using a multidict\r\n\r\n0.9 (28/01/2011)\r\n----------------\r\n\r\n- Initial release.", "description_content_type": null, "docs_url": "https://pythonhosted.org/loggerglue/", "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://www.evax.fr/", "keywords": "syslog,rfc5424,rfc5425,TLS", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "loggerglue", "package_url": "https://pypi.org/project/loggerglue/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/loggerglue/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://www.evax.fr/" }, "release_url": "https://pypi.org/project/loggerglue/1.0/", "requires_dist": null, "requires_python": null, "summary": "Syslog protocol (rfc5424 and rfc5425) utilities", "version": "1.0" }, "last_serial": 794313, "releases": { "0.9": [ { "comment_text": "", "digests": { "md5": "b71759cde1295518dc4e683f44cc944c", "sha256": "7cdab7b7e3b1f8d86774f50ae4e151a841c61d5c19d4471629dc6a4f752e2137" }, "downloads": -1, "filename": "loggerglue-0.9.tar.gz", "has_sig": false, "md5_digest": "b71759cde1295518dc4e683f44cc944c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6875, "upload_time": "2011-01-28T18:47:26", "url": "https://files.pythonhosted.org/packages/5e/d7/2d90cd81a008ed5e646047510d85a432c0d7b7bdca3cd48842eac50b4c3b/loggerglue-0.9.tar.gz" } ], "1.0": [ { "comment_text": "", "digests": { "md5": "47a970a343e158db62923d2b9029fa1c", "sha256": "0a0519f06f507bdb8255688395ca6666831ec253735dc0cb8347d8e440db8b1d" }, "downloads": -1, "filename": "loggerglue-1.0.tar.gz", "has_sig": false, "md5_digest": "47a970a343e158db62923d2b9029fa1c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19269, "upload_time": "2011-03-25T09:13:01", "url": "https://files.pythonhosted.org/packages/b2/9f/3207874a96613d386aceca1a2ddd449b27ab4f16a925ca5829faa7d0f5ed/loggerglue-1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "47a970a343e158db62923d2b9029fa1c", "sha256": "0a0519f06f507bdb8255688395ca6666831ec253735dc0cb8347d8e440db8b1d" }, "downloads": -1, "filename": "loggerglue-1.0.tar.gz", "has_sig": false, "md5_digest": "47a970a343e158db62923d2b9029fa1c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19269, "upload_time": "2011-03-25T09:13:01", "url": "https://files.pythonhosted.org/packages/b2/9f/3207874a96613d386aceca1a2ddd449b27ab4f16a925ca5829faa7d0f5ed/loggerglue-1.0.tar.gz" } ] }