{ "info": { "author": "Salah OSFOR", "author_email": "osfor.salah@gmail.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "Intended Audience :: Information Technology", "Intended Audience :: System Administrators", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: System :: Logging", "Topic :: System :: Monitoring" ], "description": "# Logs-analyzer\n\nLogs-analyzer is a Python based library containing functions that can help you extract usable data from logs.\n\n## Status\n\n**Master:** ![Codeship Status for ddalu5/logs-analyzer](https://codeship.com/projects/b12161a0-f65e-0133-0e7a-7e18ff1a37b8/status?branch=master)\n [![Build Status](https://travis-ci.org/ddalu5/logs-analyzer.svg?branch=master)](https://travis-ci.org/ddalu5/logs-analyzer)\n\n**Develop:** ![Codeship Status for ddalu5/logs-analyzer](https://codeship.com/projects/b12161a0-f65e-0133-0e7a-7e18ff1a37b8/status?branch=develop)\n [![Build Status](https://travis-ci.org/ddalu5/logs-analyzer.svg?branch=develop)](https://travis-ci.org/ddalu5/logs-analyzer)\n\n## Quickstart\n\n### Support\n**Python 2:** 2.7\n**Python 3:** 3.6, 3.7\n\n### Install\nusing pip : `pip install logs-analyzer`\n\n### Code sample\n```python\nfrom logs_analyzer.lib import LogsAnalyzer\n\nnginx_logsanalyzer = LogsAnalyzer('nginx')\nnginx_logsanalyzer.add_date_filter(minute='*', hour=22, day=4, month=5)\nnginx_logsanalyzer.add_filter('192.10.1.1')\nrequests = nginx_logsanalyzer.get_requests()\n\n```\n\n## Non-object functions\n\n### Function get_service_settings\nGet default settings for the said service from the settings file, three type\nof logs are supported right now: `nginx`, `apache2` and `auth`.\n#### Parameters\n**service_name:** service name (e.g. nginx, apache2...).\n#### Return\nReturns a dictionary containing the chosen service settings or `None` if the\nservice doesn't exists.\n#### Sample\n`nginx_settings = get_service_settings('nginx')`\n\n### Function get_date_filter\nGet the date's pattern that can be used to filter data from\nlogs based on the parameters.\n#### Parameters\n**settings:** the target logs settings.\n\n**minute:** default now, minutes or * to ignore.\n\n**hour:** default now, hours or * to ignore.\n\n**day:** default now, day of month.\n\n**month:** default now, month number.\n\n**year:** default now, year.\n\n#### Sample\n```python\nnginx_settings = get_service_settings('nginx')\ndate_pattern = get_date_filter(nginx_settings, 13, 13, 16, 1, 1989)\nprint(date_pattern)\n```\nPrints `[16/Jan/1989:13:13`\n\n### Function filter_data\nFilter received data/file content and return the results.\n#### Parameters\n**log_filter:** string that will be used to filter data\n\n**data:** data to be filtered (String) or None if the data will\nbe loaded from a file.\n\n**filepath:** filepath from where data will be loaded or None if\nthe data has been passed as a parameter.\n\n**is_casesensitive:** if the filter has to be case sensitive\n(default True).\n\n**is_regex:** if the filter string is a regular expression\n(default False).\n\n**is_reverse:** (boolean) invert selection.\n#### Return\nReturns filtered data (String).\n#### Sample\n```python\nnginx_settings = get_service_settings('nginx')\ndate_filter = get_date_filter(nginx_settings, '*', '*', 27, 4, 2016)\nbase_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))\nfile_name = os.path.join(base_dir, 'logs-samples/nginx1.sample')\ndata = filter_data('192.168.5', filepath=file_name)\ndata = filter_data(date_filter, data=data)\n```\n\n### Function get_web_requests\nAnalyze the web logs (Nginx & Apache2 for now) data and return list of requests\nformatted as the model (pattern) defined.\n#### Parameters\n**data:** (String) data to analyzed.\n\n**pattern:** (Regular expression) used to extract requests.\n\n**date_pattern:** (Regular expression or None) used to extract date elements\nto have ISO formatted dates.\n\n**date_keys:** (List or None) list of extracted date elements placements.\n#### Sample\n```python\napache2_settings = get_service_settings('apache2')\nbase_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))\nfile_name = os.path.join(base_dir, 'logs-samples/apache1.sample')\ndata = filter_data('127.0.1.1', filepath=file_name)\nrequests = get_web_requests(data, apache2_settings['request_model'],\n nginx_settings['date_pattern'], nginx_settings['date_keys'])\n```\n\n### Function get_auth_requests\nAnalyze the Auth logs data and return list of requests\nformatted as the model (pattern) defined.\n#### Parameters\n**data:** (String) data to analyzed.\n\n**pattern:** (Regular expression) used to extract requests.\n\n**date_pattern:** (Regular expression or None) used to extract date elements\nto have ISO formatted dates.\n\n**date_keys:** (List or None) list of extracted date elements placements.\n#### Sample\n```python\nauth_settings = get_service_settings('auth')\nbase_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))\ndate_filter = get_date_filter(auth_settings, '*', 22, 4, 5)\nfile_name = os.path.join(base_dir, 'logs-samples/auth.sample')\ndata = filter_data('120.25.229.167', filepath=file_name)\ndata = filter_data(date_filter, data=data)\nrequests = get_auth_requests(data, auth_settings['request_model'],\n auth_settings['date_pattern'], auth_settings['date_keys'])\n```\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ddalu5/logs-analyzer", "keywords": "", "license": "Apache V2", "maintainer": "", "maintainer_email": "", "name": "logs-analyzer", "package_url": "https://pypi.org/project/logs-analyzer/", "platform": "", "project_url": "https://pypi.org/project/logs-analyzer/", "project_urls": { "Homepage": "https://github.com/ddalu5/logs-analyzer" }, "release_url": "https://pypi.org/project/logs-analyzer/0.5.2/", "requires_dist": null, "requires_python": "", "summary": "Logs-analyzer is a library containing functions that can help you extract usable data from logs.", "version": "0.5.2" }, "last_serial": 5142227, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "ce6a5e36c9750542dc7bc291de84bced", "sha256": "5ad101eae83a00d67c59e91528164be5a10e95394ece3fc452ccb400ecd83565" }, "downloads": -1, "filename": "logs-analyzer-0.1.tar.gz", "has_sig": false, "md5_digest": "ce6a5e36c9750542dc7bc291de84bced", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7088, "upload_time": "2016-05-07T09:48:31", "url": "https://files.pythonhosted.org/packages/2e/0a/2e95894a1a46248cf88ff6f8338a9a2f518f7d3314915639460c9b13046b/logs-analyzer-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "5012f285e73f69b81ad79fc96c8129b1", "sha256": "0620c50beacb58cda6932f6bb05d808a23af8e14a62a5290c5575da6afafbd74" }, "downloads": -1, "filename": "logs-analyzer-0.2.tar.gz", "has_sig": false, "md5_digest": "5012f285e73f69b81ad79fc96c8129b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9074, "upload_time": "2016-05-09T09:28:00", "url": "https://files.pythonhosted.org/packages/dd/3a/587adc096f677f93f25b8e440716e1d1fa9bb1204b7ba4d5a1da39e6c722/logs-analyzer-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "25ab04fd8992a02e6d22d13f4dbc2788", "sha256": "325aa4b4c9969920fca07d2662e91568799a6f24e1151ca17afb497b0c5bf089" }, "downloads": -1, "filename": "logs-analyzer-0.3.tar.gz", "has_sig": false, "md5_digest": "25ab04fd8992a02e6d22d13f4dbc2788", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7676, "upload_time": "2016-05-09T09:34:11", "url": "https://files.pythonhosted.org/packages/c9/44/9f026dc53a4acbc7fa5fafb71863e379c054e7db5bfa8ff64d993bffe37e/logs-analyzer-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "89e8fc36b17f8326ff37db230d6ff79d", "sha256": "6e91725404fe09efe5091c67c7fd2af7bb39a3674ac6970d09f06e92169667cb" }, "downloads": -1, "filename": "logs-analyzer-0.4.tar.gz", "has_sig": false, "md5_digest": "89e8fc36b17f8326ff37db230d6ff79d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8543, "upload_time": "2016-05-11T19:14:10", "url": "https://files.pythonhosted.org/packages/99/78/185eeccef0dd2929bc9887d80d0c6a7d76cd16238e26813deaf8823fd85d/logs-analyzer-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "ef22240faa556a58da1c30af65c1e3e0", "sha256": "212ab86a0fb87e0439f88ad0ac2a4563ab962555ce5ba0cfb4bb3bac714e248c" }, "downloads": -1, "filename": "logs_analyzer-0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "ef22240faa556a58da1c30af65c1e3e0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9596, "upload_time": "2019-04-14T14:40:36", "url": "https://files.pythonhosted.org/packages/a4/e6/0231c34b0141ac626c1b0e65a96ff92ce46972c00b7ab69272681ea8ed4f/logs_analyzer-0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7094a923706450579610dd3c466f9204", "sha256": "6de769a49c5e5f9ca9e79930ca663627840ee8e99ae0bc3d38be51c2275b87bb" }, "downloads": -1, "filename": "logs-analyzer-0.5.tar.gz", "has_sig": false, "md5_digest": "7094a923706450579610dd3c466f9204", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8541, "upload_time": "2019-04-14T14:40:37", "url": "https://files.pythonhosted.org/packages/cd/78/d2cd9484fe1ece5a8832a1fe237cc19a745d550d9c2221e41af7e338bf2a/logs-analyzer-0.5.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "5209daf84a3b8e6950971c9018de77ea", "sha256": "10d8e619eaab88aeedb1a0685164ae589cae7d9b3a884ed4bca44b9a98f0b927" }, "downloads": -1, "filename": "logs_analyzer-0.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "5209daf84a3b8e6950971c9018de77ea", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11041, "upload_time": "2019-04-14T22:55:06", "url": "https://files.pythonhosted.org/packages/17/1c/fb710752a49b653909f70c432aca4e8624d97b03f78ef8d99c7180e89a39/logs_analyzer-0.5.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3e12363107a8386de7d5c508962607b2", "sha256": "6a93543d42ac9225e83367a13ad969cf64cca55d0df87e7b59ee8c639b3e9bf8" }, "downloads": -1, "filename": "logs-analyzer-0.5.1.tar.gz", "has_sig": false, "md5_digest": "3e12363107a8386de7d5c508962607b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9914, "upload_time": "2019-04-14T22:55:07", "url": "https://files.pythonhosted.org/packages/ef/ba/4c172fcf74fca6b3ce28e6d08cd714970169784d4c063decc5c11e3f848a/logs-analyzer-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "a1f994481810d28dfcd7dd6606ca3443", "sha256": "79030f1715fc38d1e3da642c2b3b1c66d414368ec62dcb8c08530f308677aef4" }, "downloads": -1, "filename": "logs_analyzer-0.5.2-py3-none-any.whl", "has_sig": false, "md5_digest": "a1f994481810d28dfcd7dd6606ca3443", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11042, "upload_time": "2019-04-14T23:11:06", "url": "https://files.pythonhosted.org/packages/2b/48/7cc1a8e92de6f5180706e1e9623c7add717d9107aa4f85a8f4bb543988a7/logs_analyzer-0.5.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7c0e37f9eb805728756186dcdbbf0cc3", "sha256": "7e60eea4e5917a15c29cf4ccfc77b500696a51baa6bd50d02ceb2017b8f9e6d7" }, "downloads": -1, "filename": "logs-analyzer-0.5.2.tar.gz", "has_sig": false, "md5_digest": "7c0e37f9eb805728756186dcdbbf0cc3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10347, "upload_time": "2019-04-14T23:11:09", "url": "https://files.pythonhosted.org/packages/9c/8c/6d24d8602447153f04fa85fbd20830e7288910ad4874f70d75b8e1c1af2d/logs-analyzer-0.5.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a1f994481810d28dfcd7dd6606ca3443", "sha256": "79030f1715fc38d1e3da642c2b3b1c66d414368ec62dcb8c08530f308677aef4" }, "downloads": -1, "filename": "logs_analyzer-0.5.2-py3-none-any.whl", "has_sig": false, "md5_digest": "a1f994481810d28dfcd7dd6606ca3443", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11042, "upload_time": "2019-04-14T23:11:06", "url": "https://files.pythonhosted.org/packages/2b/48/7cc1a8e92de6f5180706e1e9623c7add717d9107aa4f85a8f4bb543988a7/logs_analyzer-0.5.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7c0e37f9eb805728756186dcdbbf0cc3", "sha256": "7e60eea4e5917a15c29cf4ccfc77b500696a51baa6bd50d02ceb2017b8f9e6d7" }, "downloads": -1, "filename": "logs-analyzer-0.5.2.tar.gz", "has_sig": false, "md5_digest": "7c0e37f9eb805728756186dcdbbf0cc3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10347, "upload_time": "2019-04-14T23:11:09", "url": "https://files.pythonhosted.org/packages/9c/8c/6d24d8602447153f04fa85fbd20830e7288910ad4874f70d75b8e1c1af2d/logs-analyzer-0.5.2.tar.gz" } ] }