{ "info": { "author": "Ben Cordero", "author_email": "bmc@linux.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: Apache Software License", "Topic :: System :: Logging" ], "description": "ListeningSocketHandler\r\n======================\r\n\r\nThe opposite of logging.handlers.SocketHandler\r\n\r\nExample Usage\r\n-------------\r\n\r\n1. Create a logger\r\n\r\n >>> import logging\r\n >>> from ListeningSocketHandler import ListeningSocketHandler\r\n >>> log = logging.getLogger()\r\n >>> log.setLevel(logging.DEBUG)\r\n\r\n2. Create some handlers\r\n\r\n A normal StreamHandler that outputs to stderr and\r\n a ListeningSocketHandler bound to port 12345.\r\n\r\n >>> sh = logging.StreamHandler()\r\n >>> sh.setLevel(logging.WARN)\r\n >>> lh = ListeningSocketHandler(12345)\r\n >>> lh.setLevel(logging.DEBUG)\r\n\r\n3. Add handlers to the logger\r\n\r\n >>> log.addHandler(sh)\r\n >>> log.addHandler(lh)\r\n\r\n4. Log some things\r\n\r\n >>> log.info(\"An informational message\")\r\n >>> log.warn(\"A warning message\")\r\n A warning message\r\n\r\n5. Connect to the logger, and log more detailed events\r\n\r\n In a new shell, connect to the logger.\r\n\r\n $ telnet localhost 12345\r\n\r\n Back in python, use different log levels.\r\n\r\n >>> log.critical(\"A critical message\")\r\n A critical message\r\n >>> log.debug(\"A debugging message\")\r\n\r\n Watch the detailed stream in the telnet session.\r\n\r\n A critical message\r\n A debugging message\r\n\r\nMaking it work with Django\r\n--------------------------\r\n\r\n1. Install the handler\r\n\r\n $ pip install LoggingSocketHandler\r\n\r\n2. Add the ListeningSocketHandler to the LOGGING dict\r\n\r\n LOGGING = {\r\n ...\r\n 'handlers': {\r\n 'listeningsocket': {\r\n 'level': 'DEBUG',\r\n 'class': 'ListeningSocketHandler.ListeningSocketHandler',\r\n },\r\n ...\r\n },\r\n 'loggers': {\r\n 'myapp': {\r\n 'handlers': ['listeningsocket'],\r\n 'level': 'DEBUG',\r\n 'propagate': True,\r\n },\r\n ...\r\n },\r\n }\r\n\r\n3. Run the server, and check the logs\r\n\r\n $ ./manage.py runserver\r\n ListeningSocketHandler on port: 40955\r\n ListeningSocketHandler on port: 49830\r\n Validating models...\r\n\r\n 0 errors found\r\n Django version 1.4.2, using settings 'myproject.settings'\r\n Development server is running at http://127.0.0.1:8000/\r\n Quit the server with CONTROL-C.\r\n\r\nthe default runserver is stupid, use foreman instead.\r\n\r\n $ foreman start\r\n 17:55:11 web.1 | started with pid 24927\r\n 17:55:13 web.1 | ListeningSocketHandler on port: 36688\r\n 17:55:13 web.1 | Validating models...\r\n 17:55:13 web.1 |\r\n 17:55:13 web.1 | 0 errors found\r\n 17:55:13 web.1 | Django version 1.4.2, using settings 'myproject.settings'\r\n 17:55:13 web.1 | Development server is running at http://0.0.0.0:5000/\r\n 17:55:13 web.1 | Quit the server with CONTROL-C.\r\n\r\n4. Connect to the socket (telnet, netcat etc.)\r\n\r\n $ telnet localhost 36688\r\n Trying 127.0.0.1...\r\n Connected to localhost.\r\n Escape character is '^]'.\r\n\r\n5. Use django normally, and watch the detailed logs scroll past your terminal,\r\n or pipe them to a file for later analysis.\r\n\r\n $ ncat localhost 36688 > detailed-log.txt\r\n ^C\r\n\r\n Refresh the view, or perform the task to reproduce your bug, then break out\r\n with Control-C when you've got the logs that you want.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/bencord0/ListeningSocketHandler", "keywords": "", "license": "LICENSE.txt", "maintainer": "", "maintainer_email": "", "name": "ListeningSocketHandler", "package_url": "https://pypi.org/project/ListeningSocketHandler/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/ListeningSocketHandler/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/bencord0/ListeningSocketHandler" }, "release_url": "https://pypi.org/project/ListeningSocketHandler/0.1.0/", "requires_dist": null, "requires_python": null, "summary": "The opposite of logging.handlers.SocketHandler", "version": "0.1.0" }, "last_serial": 738953, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "f6866317c3cc9b81e3729a441c1b2dbd", "sha256": "e8a8bb933d4841e5a02269b05bce87b35838224e74678604fb9cd787b6c68d5f" }, "downloads": -1, "filename": "ListeningSocketHandler-0.1.0.tar.gz", "has_sig": false, "md5_digest": "f6866317c3cc9b81e3729a441c1b2dbd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8129, "upload_time": "2012-12-15T18:31:42", "url": "https://files.pythonhosted.org/packages/b5/98/55ecabfaa20d50f0f26ad72696037eb3342a7546a0ac329b935fb2ed0e7d/ListeningSocketHandler-0.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f6866317c3cc9b81e3729a441c1b2dbd", "sha256": "e8a8bb933d4841e5a02269b05bce87b35838224e74678604fb9cd787b6c68d5f" }, "downloads": -1, "filename": "ListeningSocketHandler-0.1.0.tar.gz", "has_sig": false, "md5_digest": "f6866317c3cc9b81e3729a441c1b2dbd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8129, "upload_time": "2012-12-15T18:31:42", "url": "https://files.pythonhosted.org/packages/b5/98/55ecabfaa20d50f0f26ad72696037eb3342a7546a0ac329b935fb2ed0e7d/ListeningSocketHandler-0.1.0.tar.gz" } ] }