{"id":24499656,"url":"https://github.com/codewithkyle/lumberjack","last_synced_at":"2025-03-15T07:16:00.575Z","repository":{"id":231771028,"uuid":"782686463","full_name":"codewithkyle/lumberjack","owner":"codewithkyle","description":"A free and open source log aggregator","archived":false,"fork":false,"pushed_at":"2024-08-02T20:52:04.000Z","size":412,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-11T14:52:22.476Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/codewithkyle.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2024-04-05T20:04:33.000Z","updated_at":"2024-08-02T20:52:08.000Z","dependencies_parsed_at":"2024-07-31T23:52:43.615Z","dependency_job_id":null,"html_url":"https://github.com/codewithkyle/lumberjack","commit_stats":null,"previous_names":["codewithkyle/lumberjack"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codewithkyle%2Flumberjack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codewithkyle%2Flumberjack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codewithkyle%2Flumberjack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codewithkyle%2Flumberjack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codewithkyle","download_url":"https://codeload.github.com/codewithkyle/lumberjack/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243695597,"owners_count":20332629,"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-01-21T22:15:12.401Z","updated_at":"2025-03-15T07:16:00.558Z","avatar_url":"https://github.com/codewithkyle.png","language":"JavaScript","readme":"\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"lumberjack - a free and open source log aggregator\" src=\"https://github.com/codewithkyle/lumberjack/assets/15202776/038998b3-183b-43db-98fb-bd6ec4e02f18\"\u003e\n\u003c/p\u003e\n\n## Design\n\n| Dark | Light |\n| - | - |\n| ![Preview Dark Mode](https://github.com/codewithkyle/lumberjack/assets/15202776/5cac38c7-a36f-40e6-94af-360e20d35bc8) | ![Preview Light Mode](https://github.com/codewithkyle/lumberjack/assets/15202776/2ae9cbc5-8bc3-4aec-8ec8-796a2bf745f4) |\n\n## Schema\n\n#### Example 1\n\n```\n[Informational] - 2024-04-06T08:48:24Z\nBranch: 7c96197c-6ecb-4b3b-885a-d4ee97fe87e9\nCategory: Example\nCustom Key: hi mom!\nMessage:\nThis is the an example message.\nIt can span many lines.\n---[EOL]--\n```\n\n#### Example 2\n\n```\n[Error] - 2024-04-06T08:48:24Z\nBranch: 7c96197c-6ecb-4b3b-885a-d4ee97fe87e9\nCategory: Example\nFile: /home/codewithkyle/my-app/services/DatabaseService.php\nFunction: query()\nLine: 69\nMessage:\nThis is the an example message.\nIt can span many lines.\n---[EOL]--\n```\n\nA log must always begin with the [log serverity](https://datatracker.ietf.org/doc/html/rfc5424) name contained within a pair of `[]` followed by a [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) UTC timestamp seperated by a `-`.\n\nAll of the following values are optional. If none of the optional values exist within a log entry the log will be discarded and ignored.\n\n`Branch`\n\nAn integer, string, or UUID (prefered). This value will be parsed and stored as a string. It will be used to link several log entries together and can be useful for tracking the execution of a code path through a system.\n\n---\n\n`Category`\n\nAny string value. It will be used for filtering logs within the admin web portal.\n\n---\n\n`File`\n\nAny string value. This value should be the file that triggered the debug or error.\n\n---\n\n`Function`\n\nAny string value. This value should be the name of the function that triggered the debug or error.\n\n---\n\n`Line`\n\nAny integer or string value. This value should be the line number that triggered the debug or error.\n\n---\n\n`Message`\n\nThe message can contain any data type and may span multiple lines. Anything written within the lines will be parsed and stored as a string. The message parser will continue to parse and append new lines to the log entry message until the `---[EOL]--` marker is reached. The message must always appear last within a log entry.\n\n---\n\nLumberjack also supports custom data definitions. Custom data is limited to one line. It must start with a key followed immediately by a `:` symbol. The key and the data will both be parsed and stored as strings. The custom keys will be toggleable within the admin portal data table settings and will be hidden by default.\n\n## Shipping Log Files\n\nLog files can be easily sent to the Lumberjack service from any machine that has find, cURL, and bash installed using the following command:\n\n```bash\nfind /path/to/app/logs -type f -name \"*.log\" -exec bash -c 'curl -X POST -H \"Lumberjack-App: My App\" -H \"Lumberjack-Env: Dev\" --data-binary @{} http://example.com \u0026\u0026 [[ $? -eq 0 ]] \u0026\u0026 rm -f \"{}\"' \\;\n```\n\nWithin the cURL request the URL will need to be replaced with the URL of your Lumberjack server.\n\nThe `Lumberjack-App` header will need to be changed to the name of the application that is creating the logs.\n\nThe `Lumberjack-Env` header will need to be updated to the environment your application is running in. It can be any string value and will be used for filtering logs within the admin web portal.\n\n\u003e We recommend configuring the log shipping command as a cron job to automatically ship new logs at 5 minute intervals.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodewithkyle%2Flumberjack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodewithkyle%2Flumberjack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodewithkyle%2Flumberjack/lists"}