{ "info": { "author": "Sawood Alam", "author_email": "ibnesayeed@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Internet :: Log Analysis" ], "description": "# AccessLog Parser and CLI\n\nWeb server access log parser and CLI tool with added features for web archive replay logs.\n\n## Installation\n\nThis package requires Python 3.6 or above.\nInstall the latest version of the released package and `accesslog` CLI tool from PyPi:\n\n```\n$ pip install accesslog\n```\n\nAlternatively, build and install the development version of the package:\n\n```\n$ git clone https://github.com/oduwsdl/accesslog-parser.git\n$ cd accesslog-parser\n$ python3 setup.py install\n$ accesslog --version\n```\n\n## Input Parsing\n\nTODO\n\n## Record Filtering\n\nTODO\n\n## Output Formatting\n\nTODO\n\n## CLI Reference\n\n```\n$ accesslog -h\nusage: accesslog [options] [FILES ...]\n\nA tool to parse Common Log formatted access logs with various derived fields.\n\npositional arguments:\n files Log files (plain/gz/bz2) to parse (reads from the STDIN, if empty or '-')\n\noptional arguments:\n -h, --help Show this help message and exit\n -v, --version Show version number and exit\n -d, --debug Show debug messages on STDERR\n -e FIELDS, --nonempty FIELDS\n Skip record if any of the provided fields is empty (comma separated list)\n -i FIELDS, --valid FIELDS\n Skip record if any of the provided field values are invalid\n ('all' or comma separated list from 'host,request,status,size,referrer')\n -m FIELD~RegExp, --match FIELD~RegExp\n Skip record if field does not match the RegExp (can be used multiple times)\n -t TFORMAT, --origtime TFORMAT\n Original datetime format of logs (default: '%d/%b/%Y:%H:%M:%S %z')\n -f FORMAT, --format FORMAT\n Output format string (see available formatting fields below)\n -j FIELDS, --json FIELDS\n Output NDJSON with the provided fields (use 'all' for all fields except 'origline')\n\nformatting fields:\n {origline} Original log line\n {host} IP address of the client\n {identity} Identity of the client, usually '-'\n {user} User ID for authentication, usually '-'\n {origtime} Original date and time (typically in '%d/%b/%Y:%H:%M:%S %z' format)\n {epoch} Seconds from the Unix epoch (derived from origtime)\n {date} UTC date in '%Y-%m-%d' format (derived from origtime)\n {time} UTC time in '%H:%M:%S' format (derived from origtime)\n {datetime} 14 digit datetime in '%Y%m%d%H%M%S' format (derived from origtime)\n {request} Original HTTP request line\n {method} HTTP method (empty for invalid request)\n {path} Path and query (scheme and host removed, empty for invalid request)\n {prefix} Memento endpoint path prefix (derived from path)\n {mtime} 14 digit Memento datetime (derived from path)\n {rflag} Memento rewrite flag (derived from path)\n {urir} Memento URI-R (derived from path)\n {httpv} HTTP version (empty for invalid request)\n {status} Returned status code\n {size} Number of bytes returned\n {referrer} Referer header (empty, if not logged)\n {agent} User-agent header (empty, if not logged)\n {extras} Any additional logged fields\nDefault FORMAT: '{host} {date} {time} {method} {path} {status} {size} \"{referrer}\" \"{agent}\"'\n```\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/oduwsdl/archive-accesslog", "keywords": "", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "accesslog", "package_url": "https://pypi.org/project/accesslog/", "platform": "", "project_url": "https://pypi.org/project/accesslog/", "project_urls": { "Homepage": "https://github.com/oduwsdl/archive-accesslog" }, "release_url": "https://pypi.org/project/accesslog/0.1.0b5/", "requires_dist": null, "requires_python": ">=3.6", "summary": "Web server access log parser and CLI tool with added features for web archive replay logs", "version": "0.1.0b5" }, "last_serial": 5965622, "releases": { "0.1.0b1": [ { "comment_text": "", "digests": { "md5": "18fe01462588f3d4a3b3bf88ab7d404f", "sha256": "f55da40c03dfc3cbd20b154c1a82f6157a3f43639b51c7e23eaa24fb09ccbb56" }, "downloads": -1, "filename": "accesslog-0.1.0b1-py3-none-any.whl", "has_sig": false, "md5_digest": "18fe01462588f3d4a3b3bf88ab7d404f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 7552, "upload_time": "2019-10-01T15:34:08", "url": "https://files.pythonhosted.org/packages/5d/cc/99fde82ea68b99bd3de3c0c4ba2e068d53b8c5bf809a8ae9dc768a40326d/accesslog-0.1.0b1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "571613d1f1d5fbaf159991ed4c94c630", "sha256": "72c72be794ece873675ff6a12393e73c11a1a978a74bd103590eac17cac1d5fd" }, "downloads": -1, "filename": "accesslog-0.1.0b1.tar.gz", "has_sig": false, "md5_digest": "571613d1f1d5fbaf159991ed4c94c630", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5356, "upload_time": "2019-10-01T15:34:46", "url": "https://files.pythonhosted.org/packages/17/9b/99598703a23a3caea3631779139b53068ef301645def9b2caf25485e146f/accesslog-0.1.0b1.tar.gz" } ], "0.1.0b2": [ { "comment_text": "", "digests": { "md5": "b2b207d1aed235bb9cece4ea721b8e48", "sha256": "91662cee954b065086215af5b6c92f88168c95cece5673becb1d90d3097af9ce" }, "downloads": -1, "filename": "accesslog-0.1.0b2-py3-none-any.whl", "has_sig": false, "md5_digest": "b2b207d1aed235bb9cece4ea721b8e48", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 7699, "upload_time": "2019-10-01T17:27:18", "url": "https://files.pythonhosted.org/packages/9e/01/e597136cad8915b1bc0ca3711b17f5cf9c34ee367183957d3c34e2ff801b/accesslog-0.1.0b2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e4e1553983e513410a948eb402e5bf4d", "sha256": "c4be49c2af81459efda0b6722017af369865637f2fb1be2c4f3160a2de5432bc" }, "downloads": -1, "filename": "accesslog-0.1.0b2.tar.gz", "has_sig": false, "md5_digest": "e4e1553983e513410a948eb402e5bf4d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5543, "upload_time": "2019-10-01T17:27:19", "url": "https://files.pythonhosted.org/packages/45/96/6e74e1a98562867fd579581f17b5ffa8f8ae2435e3f2fa17d2c8a85a4538/accesslog-0.1.0b2.tar.gz" } ], "0.1.0b3": [ { "comment_text": "", "digests": { "md5": "6896fee8acaf5be2f893de3e708b21d6", "sha256": "56f56ae145d8d76d0b9e5f94cb4929c28f36a4caa2a0eadd8d486ba8ab87df4a" }, "downloads": -1, "filename": "accesslog-0.1.0b3-py3-none-any.whl", "has_sig": false, "md5_digest": "6896fee8acaf5be2f893de3e708b21d6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 7695, "upload_time": "2019-10-01T22:43:26", "url": "https://files.pythonhosted.org/packages/13/f3/68eaf4bfe3b4bba88ec568cd6c4e9a7ee1c0d89a23ae6772ccd51de83959/accesslog-0.1.0b3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dc575cc8760567fcfe96b5225b29d5dd", "sha256": "1d64a350e09477e22a3f45b0549444e263037980153118fa13be704a950c316f" }, "downloads": -1, "filename": "accesslog-0.1.0b3.tar.gz", "has_sig": false, "md5_digest": "dc575cc8760567fcfe96b5225b29d5dd", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5544, "upload_time": "2019-10-01T22:43:27", "url": "https://files.pythonhosted.org/packages/fa/7f/b2eef93d5ca38d336f5d0e1605873a6fb14bc4bbed7c66d7f1f9665b6977/accesslog-0.1.0b3.tar.gz" } ], "0.1.0b4": [ { "comment_text": "", "digests": { "md5": "0364c40d69c4802d2b4f7b10d2e4f0b0", "sha256": "f5a1c2935ba395d5cba2c9c7b6745edc1769d8801084746ece77aae52a6b54c7" }, "downloads": -1, "filename": "accesslog-0.1.0b4-py3-none-any.whl", "has_sig": false, "md5_digest": "0364c40d69c4802d2b4f7b10d2e4f0b0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 7703, "upload_time": "2019-10-12T17:29:30", "url": "https://files.pythonhosted.org/packages/a8/d1/3de297e7585ba77e9adeca67519b6fcfd83e06dfbdcc6c917cfebaf2b0c9/accesslog-0.1.0b4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "daeaf88f13af817fa398714f41c4c164", "sha256": "92ed76a25a1f936e2db98eb446328cd14ca18e570555fac490fb4b492898b9f3" }, "downloads": -1, "filename": "accesslog-0.1.0b4.tar.gz", "has_sig": false, "md5_digest": "daeaf88f13af817fa398714f41c4c164", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5547, "upload_time": "2019-10-12T17:29:32", "url": "https://files.pythonhosted.org/packages/83/33/170de527daf6c0b310936b2299434d2fae9dcc3b1871ec06f04251666e0c/accesslog-0.1.0b4.tar.gz" } ], "0.1.0b5": [ { "comment_text": "", "digests": { "md5": "9023b0c133b992550b78446f37b70dc3", "sha256": "e06b1bf7ec8daed2dfe93d549a3470dd04b71d6c8eae6446dc8073ae236a13c4" }, "downloads": -1, "filename": "accesslog-0.1.0b5-py3-none-any.whl", "has_sig": false, "md5_digest": "9023b0c133b992550b78446f37b70dc3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 7750, "upload_time": "2019-10-12T22:39:29", "url": "https://files.pythonhosted.org/packages/bb/ea/d4d11025642a24ba1b62e66909ae1a8dd02e30a0503c87e1d75eae50c547/accesslog-0.1.0b5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9e4a4b2515eb5a8a2395c9945805359d", "sha256": "5982b7403b530687b5c77e2b6686b301d473c524cfab1891c9c87072b3bcf6e5" }, "downloads": -1, "filename": "accesslog-0.1.0b5.tar.gz", "has_sig": false, "md5_digest": "9e4a4b2515eb5a8a2395c9945805359d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5590, "upload_time": "2019-10-12T22:39:31", "url": "https://files.pythonhosted.org/packages/47/3c/d57ed335401f005094fda4d34d84b2481f641f8b159faf2bcd371eb371cd/accesslog-0.1.0b5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9023b0c133b992550b78446f37b70dc3", "sha256": "e06b1bf7ec8daed2dfe93d549a3470dd04b71d6c8eae6446dc8073ae236a13c4" }, "downloads": -1, "filename": "accesslog-0.1.0b5-py3-none-any.whl", "has_sig": false, "md5_digest": "9023b0c133b992550b78446f37b70dc3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 7750, "upload_time": "2019-10-12T22:39:29", "url": "https://files.pythonhosted.org/packages/bb/ea/d4d11025642a24ba1b62e66909ae1a8dd02e30a0503c87e1d75eae50c547/accesslog-0.1.0b5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9e4a4b2515eb5a8a2395c9945805359d", "sha256": "5982b7403b530687b5c77e2b6686b301d473c524cfab1891c9c87072b3bcf6e5" }, "downloads": -1, "filename": "accesslog-0.1.0b5.tar.gz", "has_sig": false, "md5_digest": "9e4a4b2515eb5a8a2395c9945805359d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5590, "upload_time": "2019-10-12T22:39:31", "url": "https://files.pythonhosted.org/packages/47/3c/d57ed335401f005094fda4d34d84b2481f641f8b159faf2bcd371eb371cd/accesslog-0.1.0b5.tar.gz" } ] }