{"id":25650058,"url":"https://github.com/itsjunetime/logoslogger","last_synced_at":"2025-04-15T18:32:37.063Z","repository":{"id":49494086,"uuid":"314025700","full_name":"itsjunetime/LogosLogger","owner":"itsjunetime","description":"Parse an Objective-C header file into a Logos program to log functions","archived":false,"fork":false,"pushed_at":"2021-06-16T14:27:52.000Z","size":25,"stargazers_count":7,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-28T23:34:29.393Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","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/itsjunetime.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}},"created_at":"2020-11-18T18:41:02.000Z","updated_at":"2023-09-18T07:36:56.000Z","dependencies_parsed_at":"2022-09-10T03:53:39.875Z","dependency_job_id":null,"html_url":"https://github.com/itsjunetime/LogosLogger","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsjunetime%2FLogosLogger","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsjunetime%2FLogosLogger/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsjunetime%2FLogosLogger/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsjunetime%2FLogosLogger/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/itsjunetime","download_url":"https://codeload.github.com/itsjunetime/LogosLogger/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249128982,"owners_count":21217260,"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","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":"2025-02-23T14:37:43.614Z","updated_at":"2025-04-15T18:32:37.045Z","avatar_url":"https://github.com/itsjunetime.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Logos Logger\n\nThis (specifically, `log.py`) is a script that I've been using to parse an objective-c header file and return output that can be piped into a logos file to log every single time that the functions in that header file is called.\n\n### To run:\n\n```\npython3 ./log.py \u003coptions\u003e /path/to/header/file.h\n```\n\n### Features\nThis should handle basically all standard objective-c header files that you can throw at it; obviously, there will probably be some edge cases, but I haven't encountered any yet.\n\nThis script properly removes protocol specifications, comments, and adds interface declarations for undeclared classes to the top of your logos file so that it compiles correctly. If you run into something that it doesn't correctly parse, I'd love to hear about it so that I can fix it. Otherwise, enjoy!\n\n### Options:\n`-h`, `--help`: Shows help message, and ignores all other options \\\n`-n`, `--newline`: Removes all newlines from the string that is being logged so that it doesn't appear on multiple lines and you can more easilier filter with programs like grep. \\\n`-f`, `--file`: Outputs result of logs to a file instead of to `NSLog`, since `NSLog` truncates output at a certain point. You can specify a file to log to on your iDevice after this parameter (e.g. `-f \"/var/mobile/log.txt\"`), or you can leave the second part of this blank and it will log to `/var/mobile/Documents/nslog.log` \\\n`-c`, `--class`: This sets the script to log the class of each `id` object that this script encounters \\\n`-s`, `--sep`: Parses the file as a list of functions from different files. If you use this option, all lines in the file you're telling it to parse should look something like this: `./relative/path/to/file.h:23:-(void)function;`. To get a file with these lines, I normally just run `grep` through all the headers. For example, if I wanted all functions that had the string `conversation`, I would run `grep -rni \"conversation\" \u003e parse.txt` and then `log.py -s ./parse.txt` to get the logos log file. \\\n`-p`, `--prefix`: Allows you to set a custom prefix to log everything with (prefix should be passed in directly after this flag, like `-p \"MYLOG\"`); if you don't use this flag, everything will be logged with the prefix `NSLG`.\n\nYou can pipe the standard output from this script directly into a `.x` logos file, then build \u0026 install it and watch the output of the console/oslog (or view the file, if you called the `-f`/`--file` flag) for every time each of those functions is called.\n\nFeel free to open an issue or contribute if something's not right or you'd like a feature added.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitsjunetime%2Flogoslogger","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fitsjunetime%2Flogoslogger","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitsjunetime%2Flogoslogger/lists"}