{"id":15683447,"url":"https://github.com/devanddeliver/nest-logging-transport","last_synced_at":"2025-04-15T06:15:23.659Z","repository":{"id":46497526,"uuid":"395255033","full_name":"DevAndDeliver/nest-logging-transport","owner":"DevAndDeliver","description":"Logger designed for NestJS providing way to configure multiple transports","archived":false,"fork":false,"pushed_at":"2024-09-09T17:16:29.000Z","size":1045,"stargazers_count":2,"open_issues_count":7,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-15T06:15:15.353Z","etag":null,"topics":["javascript","logger","logging","nest","nestjs","node","typescript"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/nest-logging-transport","language":"TypeScript","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/DevAndDeliver.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2021-08-12T08:51:27.000Z","updated_at":"2024-07-12T08:28:50.000Z","dependencies_parsed_at":"2024-06-10T20:39:33.963Z","dependency_job_id":"c406968c-1d16-4720-a8f5-c0645f73ae4c","html_url":"https://github.com/DevAndDeliver/nest-logging-transport","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevAndDeliver%2Fnest-logging-transport","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevAndDeliver%2Fnest-logging-transport/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevAndDeliver%2Fnest-logging-transport/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevAndDeliver%2Fnest-logging-transport/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DevAndDeliver","download_url":"https://codeload.github.com/DevAndDeliver/nest-logging-transport/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249016641,"owners_count":21198833,"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":["javascript","logger","logging","nest","nestjs","node","typescript"],"created_at":"2024-10-03T17:05:31.163Z","updated_at":"2025-04-15T06:15:23.641Z","avatar_url":"https://github.com/DevAndDeliver.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Nest-logging-transport\n\nLogger for [NestJS](https://nestjs.com/) framework allowing you to\nuse custom transports (or use predefined ones).\n\n## Installation\n\nyarn:\n\n```sh\nyarn add nest-logging-transport\n```\n\nnpm:\n\n```sh\nnpm i nest-logging-transport\n```\n\n## Usage\n\nNest-logging-transport allows you to either define your own transport, or use predefined ones.\n\nExample with predefined transport:\n\n```ts\nimport { NestTransportLogger, DefaultTransportConsole } from 'nest-logging-transport';\n\nconst customLogger = new NestTransportLogger({\n    transports: [new DefaultTransportConsole()],\n});\n\nconst bootstrap = async () =\u003e {\n    const logger = new Logger('Bootstrap');\n    const app = await NestFactory.create(ExampleModule, { logger: customLogger });\n    logger.log('Application ready');\n    [...]\n    await app.listen(3334, () =\u003e logger.log('Server listening'));\n};\n```\n\nFrom this moment all log calls will be redirected to `NestTransportLogger` instance and then\nto each transport defined in instance constructor.\n\n### Creating own transport\n\nCreating own transport required implementing all methods from interface `Transport`.\nTo do it, simply create new object (or class):\n\n```ts\nimport { Transport, LogEvent, LogEventWithReplacedNulls } from 'nest-logging-transport';\n\nconst customTransport = {\n  log(event: LogEvent, eventWithoutNulls: LogEventWithReplacedNulls) {\n    // [...]\n  },\n  // [...]\n};\n```\n\nYou can find examples in [src/transports](./src/transports/).\n\n#### Difference between log events\n\nTo make operating on logs easier there is event with nulls replaced with empty strings `''`.\nNormal log:\n\n```js\n{\n  additionalContext: null,\n  stacktrace: null,\n  baseContext: 'Bootstrap',\n  type: 'log',\n  timestamp: 2022-03-23T19:26:59.295Z,\n  message: 'Server listening'\n}\n```\n\nLog with replaced nulls:\n\n```js\n{\n  additionalContext: '',\n  stacktrace: '',\n  baseContext: 'Bootstrap',\n  type: 'log',\n  timestamp: 2022-03-23T19:26:59.295Z,\n  message: 'Server listening'\n}\n```\n\nLog functions in your logger can take event with nulls as first argument and without\nnulls as the second one.\n\n## Examples\n\nLogs from default (console) transport looks like this:\n\n![image showing example log output](./docs/images/log-example.png)\n\nYou can also use preview script, available after cloning the repository:\n\n```sh\nyarn preview\n```\n\n## Publishing package (for package maintainers and forks)\n\nPublishing this package is semi-automated.\nSteps to do that:\n\n1. Clone repository and checkout branch you want to release\n2. Install dependencies from current lockfile `yarn install --frozen-lockfile`\n3. Use release scripts:\n   1. `yarn release`- in most cases, release script will take care of giving package the right number\n   2. `yarn release:patch`- when you want to change only last part of semver (x.x.X)\n   3. `yarn release:minor`- when you want to change middle part of semver (x.X.x)\n   4. `yarn release:major`- when you want to change first part of semver (X.x.x)\n4. Push created tags using `git push --follow-tags origin master`. **Don't use npm publish**.\n\nYou can read more about semver on [semver.org page](https://semver.org).\n\nThis project will follow semver from first major release (versions starting with 0 will be considered beta versions and will not follow semver).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevanddeliver%2Fnest-logging-transport","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevanddeliver%2Fnest-logging-transport","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevanddeliver%2Fnest-logging-transport/lists"}