{"id":21310289,"url":"https://github.com/vcputtini/squidlogparser","last_synced_at":"2026-01-01T22:00:14.271Z","repository":{"id":201040351,"uuid":"468011370","full_name":"vcputtini/squidlogparser","owner":"vcputtini","description":"A small object library capable of interpreting the log entries generated by Squid-cache(tm) and manipulating this data.","archived":false,"fork":false,"pushed_at":"2022-06-22T19:15:47.000Z","size":1177,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-15T20:30:31.521Z","etag":null,"topics":["cpp","cpp17","http","http-proxy","https","lib","library","parser","squid","squid-proxy"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vcputtini.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2022-03-09T16:41:46.000Z","updated_at":"2025-03-11T01:35:55.000Z","dependencies_parsed_at":null,"dependency_job_id":"d978b8aa-da9b-49d6-8ddd-c7ac0a7a39fa","html_url":"https://github.com/vcputtini/squidlogparser","commit_stats":null,"previous_names":["vcputtini/squidlogparser"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vcputtini/squidlogparser","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vcputtini%2Fsquidlogparser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vcputtini%2Fsquidlogparser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vcputtini%2Fsquidlogparser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vcputtini%2Fsquidlogparser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vcputtini","download_url":"https://codeload.github.com/vcputtini/squidlogparser/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vcputtini%2Fsquidlogparser/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28164154,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2026-01-01T02:00:06.694Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","cpp17","http","http-proxy","https","lib","library","parser","squid","squid-proxy"],"created_at":"2024-11-21T17:12:58.318Z","updated_at":"2026-01-01T22:00:14.250Z","avatar_url":"https://github.com/vcputtini.png","language":"C++","readme":"## \u003cb\u003eS\u003c/b\u003equid\u003cb\u003eL\u003c/b\u003eog\u003cb\u003eP\u003c/b\u003earser\nThis library is a basic one for analyzing and retrieving information from the fields of the Squid-cache(tm) log entries.\u003cbr\u003e\nCurrently only internally predefined formats are supported: squid; common; combined; referrer and useragent.\u003cbr\u003e\nThis is not a generic library and has not been tested in environments other than the one used in its development.\n\n\u003cb\u003eSquidLogParser\u003c/b\u003e was coded entirely in C++.\u003cbr\u003e\nAs I consider QtCreator(tm) to be an excellent development environment,\u003cbr\u003e\nI use it for my projects, even if these don't directly involve using the Qt(tm) tools.\n\n### Dependencies for Compilation:\n- At least C++17.\u003cbr\u003e\n- Boost\u003cbr\u003e\n- Tinyxml-2\u003cbr\u003e\n- MariaDB Connector C++ 1.0.1 or greater for \u003cb\u003eSLPDatabase\u003c/b\u003e (Optional)\u003cbr\u003e\n\n### My Environment\n- Fedora 36\u003cbr\u003e\n- clang version 14.0.0\u003cbr\u003e\n- g++ (GCC) 12.1.1 20220507 (Red Hat 12.1.1-1)\u003cbr\u003e\n(Under Oracle Linux 8 install gcc-devtool-10 or 8.6 install gcc-devtool-11)\u003cbr\u003e\n- cmake version 3.22.x\u003cbr\u003e\n- QtCreator 7.0.x (Code Style: clang-format -style=Mozilla)\n\n### Examples\n\nSmall programs are provided with examples in the 'examples/' folder of this project.\n\n### Basic Operations\n\n- Loads entire log file into memory and check that the log entries are with the correct format;\n- Allows query of log entries given a condition or regex.\u003cbr\u003e\n- Allows export of log entries to a XML file format.\u003cbr\u003e\n- \u003cstrong\u003e(NEW)\u003c/strong\u003e Allows export log entries to tables in a MariaDB(tm) database.\n  The tables are preconfigured by the object. See\n  [README_SLPDatabase](./README_SLPDatabase.md) for more details.\u003cbr\u003e\n\n### Objects\n\n- SquidLogParser\n - Constructor\n    - explicit SquidLogParser(LogFormat log_fmt_ )\n - Public Members\n    - append()\n    - errNum()\n    - getErrorText()\n    - size()\n    - clear()\n    - getPartInt()\n    - getPartUint()\n    - getPartStr()\n    - addrToNumeric()\n    - numericToAddr()\n    - unixTimestamp()\n    - unixToSquidDate()\n    - toXML()\n    - ShowDecodedUrl(URL)\n\n- SLPQuery\n - Constructor\n    - explicit SLPQuery(SquidLogParser* obj_);\n - Public Members\n    - select()\n    - field()\n    - getInt()\n    - getUInt()\n    - getStr()\n    - sumTotalSizeReply()\n    - sumResponseTime()\n    - countByReqMethod()\n    - countByHttpCdodes()\n    - HttpRequestCodes_V getHRCDetails()\n    - countByFiletype()\n    - getIndexByFiletype()\n    - getFTDetails()\n    - numFiletypes()\n    - totalFiles()\n    - MethodText()\n    - size()\n    - clear()\n    - ShowDecodedUrl(URL)\n\n- SLPDatabase\n    - Constructor\n        - explicit SLPDatabase(LogFormat format_, const std::string\u0026 dbase_, const std::string\u0026 host_, const int\u0026 port_, const std::string\u0026 user_, const std::string\u0026 pass_, const std::string\u0026 table_);\n    - Public Members\n        - insert()\n\t    - dataIngest()\n        - createTable(bool)\n        - getRowsInserted()\n        - resetRowsInserted()\n        - errorNum()\n        - getErrorText()\n\n- SLPUrlParts\n - Constructor\n    - explicit SLPUrlParts(const std::string rawUrl_);\n - Public Members\n    - getScheme()\n    - getDomain()\n    - getUsername()\n    - getPassword()\n    - getPath()\n    - getQuery()\n    - getFragment()\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvcputtini%2Fsquidlogparser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvcputtini%2Fsquidlogparser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvcputtini%2Fsquidlogparser/lists"}