{"id":15793034,"url":"https://github.com/sideffect0/logp","last_synced_at":"2026-02-01T05:30:56.621Z","repository":{"id":70773629,"uuid":"57278146","full_name":"sideffect0/LogP","owner":"sideffect0","description":"Spec for exchanging application logs over HTTP","archived":false,"fork":false,"pushed_at":"2016-05-20T04:59:35.000Z","size":5,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-06-13T12:52:12.869Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":null,"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/sideffect0.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-04-28T06:52:55.000Z","updated_at":"2017-01-09T19:08:12.000Z","dependencies_parsed_at":"2023-03-17T09:45:12.164Z","dependency_job_id":null,"html_url":"https://github.com/sideffect0/LogP","commit_stats":{"total_commits":14,"total_committers":2,"mean_commits":7.0,"dds":0.0714285714285714,"last_synced_commit":"24d70af1caf60944067d254b16d27093b6575390"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sideffect0/LogP","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sideffect0%2FLogP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sideffect0%2FLogP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sideffect0%2FLogP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sideffect0%2FLogP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sideffect0","download_url":"https://codeload.github.com/sideffect0/LogP/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sideffect0%2FLogP/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28969970,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-01T04:44:20.970Z","status":"ssl_error","status_checked_at":"2026-02-01T04:44:19.994Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2024-10-04T23:08:25.114Z","updated_at":"2026-02-01T05:30:56.597Z","avatar_url":"https://github.com/sideffect0.png","language":null,"readme":"# LogP: HTTP scheme Exchanging application logs   \n\n**LogP** is an HTTP scheme for exchanging application logs.Currently LogP supports JSON format as data exchange format, but it can be easily converted to other formats.\n\nCurrent Version : **dev0.1**\n\n**LogP** design respects multinode architectures for data exchange, it considers three main component parts.\nThese components use **GET** and **POST** for sending and recieving **LogP** data.\n\n* **Sender**\n* **Reciever**\n* **LogBase**\n\n##1.Sender \nSender **POST** logs from application to **Reciever** node.\nLogP data format consists of the following parts : \n\n**1.type**:  a standard type string identify type of logs, **VERBOSE**, **INFO**, **CRITICAL**, **DEBUG** ,**ERROR**\n\n**2.tag**:  a string to add checkpoint for reference.\n\n**3.message**: a string data part where details are given.\n\n**4.timestamp**: a unix timestamp to track log generate time.\n\n**5.clientId**: a unique application client/sender id string  that genrated the log.\n\n**6.extra**: an optional part for adding extra related data\n\n###ClientId Generation   \n`clientId` generation must be done on `remote node` other than `client node`.By generating `clientId`, we can minimise extra data sending over LogP, that is uniq to client.Consider an example of an android app, the OS version or build number is data part that is uniq to device, so instead of sending this data over LogP, send this data to generate a uniq `clientId`.\n\nexample data format : \n```js\n{\n// type canbe custom not restricted\n\"type\" : \"VERBOSE\", \n// tags are to identify the event trigger or \n// an application screen or any other \n\"tag\" : \"login\",  \n// then event details or something to be logged\n\"message\" : \"button clicked\", \n// a unix timestamp\n\"timestamp\" : 1462015096,\n// this part can be any type of unique id\n// this case uses a uuid4 string\n\"clientId\": \"0093b52e-f7e9-40f9-b430-e45efd334197\" \n}\n```\nSender log data should include LogP version and content type headers.  \n```  \nContent-Type : application/json  \nX-LogP-Version : dev0.1  \n```\n##2.Reciever\nReciever component accepts LogP data send from clients/senders, and resolves the data.This part deals with storing LogP data using **LogBase**.Checking for LogP version and data validation is done in reciever part.  \n\nReciever accepts only **POST** requests, and deals with LogBase transparently.  \n\nStandard Http response codes:  \n\n**HTTP 200** : Recieving and Log data request success  \n\n**HTTP 400** : Bad request, donot have standard LogP data format  \n\n##3.LogBase\nLogBase accepts **GET** requests, data from **Reciever** is stored/managed by **LogBase**.  \nUsing LogBase, clients can search or filter any logs based on the conditions given.\n**LogP** simplifies the search in a specified URL scheme.  \n  \n\n**type** : {LogBase URL}/?type=typename  \n**tag** : {LogBase URL}/?tag=tagname  \n**clientId** : {LogBase URL}/?clientId=clientidstring  \n**message** : {LogBase URL}/?message=string  \n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsideffect0%2Flogp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsideffect0%2Flogp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsideffect0%2Flogp/lists"}