{"id":13727977,"url":"https://gitlab.com/oleasteo/oddlog","last_synced_at":"2025-05-08T00:31:10.475Z","repository":{"id":57678665,"uuid":"1667216","full_name":"oleasteo/oddlog","owner":"oleasteo","description":"High-performance payload focused logging library for node.js.","archived":true,"fork":false,"pushed_at":null,"size":null,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":null,"default_branch":"master","last_synced_at":"2025-04-30T17:02:03.386Z","etag":null,"topics":["inheritance","logging","node.js","object"],"latest_commit_sha":null,"homepage":null,"language":null,"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://gitlab.com/uploads/-/system/project/avatar/1667216/logo.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-09-14T06:03:18.520Z","updated_at":"2024-04-04T21:42:33.771Z","dependencies_parsed_at":"2022-09-14T03:30:32.584Z","dependency_job_id":null,"html_url":"https://gitlab.com/oleasteo/oddlog","commit_stats":null,"previous_names":["oleasteo/oddlog","frissdiegurke/oddlog"],"tags_count":14,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/oleasteo%2Foddlog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/oleasteo%2Foddlog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/oleasteo%2Foddlog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/oleasteo%2Foddlog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/owners/oleasteo","download_url":"https://gitlab.com/oleasteo/oddlog/-/archive/master/oddlog-master.zip","host":{"name":"gitlab.com","url":"https://gitlab.com","kind":"gitlab","repositories_count":4518895,"owners_count":6976,"icon_url":"https://github.com/gitlab.png","version":null,"created_at":"2022-05-30T11:31:42.605Z","updated_at":"2024-07-18T11:24:13.055Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/owners"}},"keywords":["inheritance","logging","node.js","object"],"created_at":"2024-08-03T02:00:35.734Z","updated_at":"2025-05-08T00:31:05.464Z","avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/1667216/logo.png","language":null,"funding_links":["https://www.paypal.me/frissdiegurke","https://www.patreon.com/frissdiegurke"],"categories":["Packages"],"sub_categories":["Logging"],"readme":"# oddlog - Object driven data logging\n\n[![License](https://img.shields.io/npm/l/oddlog.svg)](LICENSE)\n[![Version](https://img.shields.io/npm/v/oddlog.svg)](https://www.npmjs.com/package/oddlog)\n[![build status](https://gitlab.com/frissdiegurke/oddlog/badges/master/build.svg)](https://gitlab.com/frissdiegurke/oddlog/commits/master)\n[![coverage report](https://gitlab.com/frissdiegurke/oddlog/badges/master/coverage.svg)](https://gitlab.com/frissdiegurke/oddlog/commits/master)\n[![Downloads](https://img.shields.io/npm/dm/oddlog.svg)](https://www.npmjs.com/package/oddlog)\n\noddlog is a high-performance payload focused logging library for node.js.\n\n*Being restricted to strings for logging sucks. So we use arbitrary JSON objects instead.*\n\n[![Preview 01](https://gitlab.com/frissdiegurke/oddlog/raw/master/assets/readme-01.png)](https://gitlab.com/frissdiegurke/oddlog/raw/master/assets/readme-01.png)\n\n```javascript\nconst oddlog = require(\"oddlog\");\nconst log = oddlog.createLogger(\"my-app\"), child = log.child({user: \"root\"});\nlog\n  .handleUncaughtExceptions()\n  .info({random: 42}, \"Application startup\");\nchild\n  .warn({method: \"terminate\"}, \"Procedure initiated\");\n\nthrow new Error(\"Nah, nothing failed\");\n```\n\n## References\n\n* [Website](https://frissdiegurke.gitlab.io/oddlog)\n* [User Guide](https://frissdiegurke.gitlab.io/oddlog/guide)\n* [Documentation](https://frissdiegurke.gitlab.io/oddlog/documentation)\n* [Source code](https://gitlab.com/frissdiegurke/oddlog)\n\n## Installation\n\n```bash\nnpm install --save oddlog\n```\n\n## Features\n\n * Payload inheritance\n * Stateless and stateful logging APIs\n * Multi-transport logging (one log, multiple destinations)\n * Source code location logging (for development, not production)\n * Payload attribute transformation (e.g. `req`, `res`, `err`)\n * Termination methods (ensure all logs have been transferred)\n * Suited for libraries (via option flag `shy`)\n * CLI for (pretty) output reformatting and filtering of log records\n * Threshold logging (cache log records until high severity is logged)\n\n## Command-line interface\n\nThe CLI `oddlog-cli` is a command-line tool to reformat, prettify and filter message records. It accepts input from\n`stdin` and outputs on `stdout`; Thus it suits well for any common operations.\n\n```bash\nnode my-application | oddlog        # simply prettify the output of my-application\nnode my-application | oddlog -vv    # increased verbosity to show payload as well\n\ncat logs/app.log | oddlog -vvl info # read (pretty) log records from logs/app.log that are INFO or above\n\ntail -f logs/app.log | oddlog       # pretty print latest and future log records within logs/app.log\n                                    # this is the recommended way of checking live logs of a running application; it\n                                    # allows you to change the filters, etc. without interrupting the process itself.\n```\n\nFor further information take a look into `oddlog --help` or check out the\n[oddlog-cli repository](https://gitlab.com/frissdiegurke/oddlog-cli).\n\n## License\n\nThe source code and all related examples, tests and benchmarks are licensed under\n[MIT](https://gitlab.com/frissdiegurke/oddlog/blob/master/LICENSE). If you don't agree to the license, you may not\ncontribute to the project. Feel free to fork and maintain your custom build thought.\n\n## Thanks\n\nMany thanks also to everyone who supports this project by usage, contribution and/or spreading the word!\n\nAll contributors may add themselves to the `contributors` field within the *package.json* regardless of the amount of\nchanges; however *I* won't do it for them.\n\nSince this project is inspired by [bunyan](https://www.npmjs.com/package/bunyan), at this point a big *Thanks!* to its\nauthor.\n\n## Donations\n\nDonations (dt.: *Schenkungen*) to the author are accepted via [PayPal](https://www.paypal.me/frissdiegurke) and\n[Patreon](https://www.patreon.com/frissdiegurke).\n\n## Related projects\n\n * [bunyan](https://github.com/trentm/node-bunyan) - The main inspiration for this project.\n * [winston](https://github.com/winstonjs/winston) - Some inspiration came from winston as well.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/gitlab.com%2Foleasteo%2Foddlog","html_url":"https://awesome.ecosyste.ms/projects/gitlab.com%2Foleasteo%2Foddlog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/gitlab.com%2Foleasteo%2Foddlog/lists"}