{"_id":"@byndyusoft/nest-logger","_rev":"2-21c0005c6d981f288445f1fc25bc3301","name":"@byndyusoft/nest-logger","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@byndyusoft/nest-logger","version":"1.0.0","keywords":["pino","logger"],"author":{"name":"Byndyusoft"},"license":"Apache-2.0","_id":"@byndyusoft/nest-logger@1.0.0","maintainers":[{"name":"alexanderbyndyu","email":"alexander.byndyu@yandex.ru"},{"name":"sadcitizen","email":"sadcitizen@yandex.ru"},{"name":"dmitriy.litichevskiy","email":"litichevskiydv@gmail.com"},{"name":"razonrus","email":"iruslansafin@gmail.com"}],"homepage":"https://github.com/Byndyusoft/nest-logger#readme","bugs":{"url":"https://github.com/Byndyusoft/nest-logger/issues"},"dist":{"shasum":"8e97a89d51e152c9f7e3e0e7cc6f70b68198fab6","tarball":"https://registry.npmjs.org/@byndyusoft/nest-logger/-/nest-logger-1.0.0.tgz","fileCount":105,"integrity":"sha512-6qt8CjB+wm7k/Y+RZxtFITAGWDZT+A9A8DVOgkxZjLcn1Yw5V0QNcEco3+LHS2+y3+k1Ccf7XHvCnYJ1VBA9HQ==","signatures":[{"sig":"MEUCIQDQ+t0ZVW03g6wGMHemFFg69VYeQHV1WHALm5J0ek5RngIgXSnzrzh/chtYe0aYmyyLnB2FFGocciidM4d/6Dq1Krs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":102791},"jest":{"roots":["<rootDir>/src","<rootDir>/test"],"rootDir":"./","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.ts$":"ts-jest"},"resetMocks":true,"testEnvironment":"node","coverageDirectory":"<rootDir>/coverage","setupFilesAfterEnv":["jest-extended/all","./test/env.setup.ts"],"collectCoverageFrom":["./src/**/*.ts","!**/__tests__/**/*.ts","!**/index.ts"],"moduleFileExtensions":["ts","js"]},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"bc15c6199bbe18d0cded389f6e49c9d37fe1d5f6","scripts":{"lint":"yarn run lint:eslint && yarn run lint:markdown && yarn run lint:prettier","test":"jest -u","build":"tsc --project ./tsconfig.build.json","prepare":"yarn build","lint:fix":"yarn run lint:eslint:fix && yarn run lint:markdown:fix && yarn run lint:prettier:fix","test:cov":"jest --coverage -u","lint:eslint":"eslint --ignore-path ./.gitignore --max-warnings 0 --ext .ts,.js .","postpublish":"pinst --enable","_postinstall":"husky install","lint:markdown":"markdownlint --ignore-path ./.gitignore \"./**/*.md\"","lint:prettier":"prettier --ignore-path ./.gitignore --check \"./**/*.{ts,js,json,yaml,yml,md}\"","prepublishOnly":"pinst --disable","lint:eslint:fix":"eslint --ignore-path ./.gitignore --fix --ext .ts,.js .","lint:markdown:fix":"markdownlint --ignore-path ./.gitignore --fix \"./**/*.md\"","lint:prettier:fix":"prettier --ignore-path ./.gitignore --write \"./**/*.{ts,js,json,yaml,yml,md}\""},"_npmUser":{"name":"alexanderbyndyu","email":"alexander.byndyu@yandex.ru"},"repository":{"url":"git+https://github.com/Byndyusoft/nest-logger.git","type":"git"},"_npmVersion":"8.19.4","description":"Logger factory for pino with module logger for NestJs","directories":{},"_nodeVersion":"22.12.0","dependencies":{"pino":"9.5.0","tslib":"2.4.0","pino-http":"10.3.0","camel-case":"4.1.2","murmurhash":"2.0.1","@byndyusoft/nest-pino":"3.4.0-1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"yarn@4.0.0-rc.42","devDependencies":{"jest":"^29.2.2","rxjs":"7.8.0","husky":"8.0.2","pinst":"3.0.0","eslint":"8.57.0","express":"4.18.2","ts-jest":"^29.0.3","prettier":"3.3.2","pino-http":"8.3.3","supertest":"^6.2.3","typescript":"5.3.3","@types/jest":"29.2.2","@types/node":"20.17.9","lint-staged":"13.1.0","opentracing":"^0.14.7","pino-pretty":"^8.0.0","jest-extended":"^3.1.0","stdout-stderr":"^0.1.13","@nestjs/common":"10.4.11","@types/express":"5.0.0","@commitlint/cli":"17.3.0","class-validator":"0.14.1","@types/supertest":"^2.0.12","markdownlint-cli":"0.33.0","reflect-metadata":"^0.2.2","semantic-release":"19.0.5","class-transformer":"0.5.1","@byndyusoft/tsconfig":"2.1.0","@byndyusoft/nest-pino":"3.4.0-1","@byndyusoft/eslint-config":"3.0.1","prettier-plugin-packagejson":"2.2.15","@byndyusoft/nest-dynamic-module":"1.0.0","@commitlint/config-conventional":"17.3.0"},"peerDependencies":{"rxjs":"^7.8.0","@nestjs/common":"^8.0.0 || ^9.0.0 || ^10.0.0","class-validator":"^0.14.0","class-transformer":"^0.5.0","@byndyusoft/nest-dynamic-module":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nest-logger_1.0.0_1736854218778_0.13457641865634162","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-01-14T11:30:18.676Z","modified":"2026-10-02T16:10:05.681Z","1.0.0":"2025-01-14T11:30:18.964Z"},"bugs":{"url":"https://github.com/Byndyusoft/nest-logger/issues"},"author":{"name":"Byndyusoft"},"license":"Apache-2.0","homepage":"https://github.com/Byndyusoft/nest-logger#readme","keywords":["pino","logger"],"repository":{"url":"git+https://github.com/Byndyusoft/nest-logger.git","type":"git"},"description":"Logger factory for pino with module logger for NestJs","maintainers":[{"email":"alexander.byndyu@yandex.ru","name":"alexanderbyndyu"},{"email":"sadcitizen@yandex.ru","name":"sadcitizen"},{"email":"iruslansafin@gmail.com","name":"razonrus"}],"readme":"# nest-logger\n\n[![npm@latest](https://img.shields.io/npm/v/@byndyusoft/nest-logger/latest.svg)](https://www.npmjs.com/package/@byndyusoft/nest-logger)\n[![test](https://github.com/Byndyusoft/nest-logger/actions/workflows/test.yaml/badge.svg?branch=master)](https://github.com/Byndyusoft/nest-logger/actions/workflows/test.yaml)\n[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier)\n[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)\n\nLogger factory for pino with module logger for NestJs\n\n## Requirements\n\n- Node.js v20 LTS or later\n- npm or yarn\n\n## Install\n\n```bash\nnpm install @byndyusoft/nest-logger @byndyusoft/nest-dynamic-module\n```\n\nor\n\n```bash\nyarn add @byndyusoft/nest-logger @byndyusoft/nest-dynamic-module\n```\n\n## Environment\n\nYou must initialize `process.env` before creating pino logger:\n\n```typescript\nprocess.env.npm_package_name;\nprocess.env.npm_package_version;\nprocess.env.CONFIG_ENV ?? process.env.NODE_ENV;\nprocess.env[\"BUILD_*\"];\n```\n\n## Usage\n\n### Ready-to-use module\n\n#### Register instance Logger and LoggerErrorInterceptor\n\n```typescript\nimport { Logger, LoggerErrorInterceptor } from \"@byndyusoft/nest-logger\";\n\nconst logger = app.get(Logger);\napp.useLogger(logger);\napp.useGlobalInterceptors(new LoggerErrorInterceptor());\n```\n\n#### Register module LoggerModule\n\n```typescript\nimport { LoggerModule, LogLevel, Disable } from \"@byndyusoft/nest-logger\";\n\n@Module({\n  imports: [\n    LoggerModule.forRoot({\n      base: {\n        configEnv: \"local\",\n        name: \"root\",\n        version: \"0.0.0-development\",\n      },\n      level: LogLevel.info,\n      pretty: true,\n      disable: [Disable.messageTemplateHash],\n    }),\n  ],\n})\nexport class AppModule {}\n```\n\n#### Or async register module LoggerModule\n\n```typescript\nimport { LoggerModule } from \"@byndyusoft/nest-logger\";\nimport { ConfigDto } from \"./config\";\nimport { PackageJsonDto } from \"./packageJson\";\n\n@Module({\n  imports: [\n    LoggerModule.forRootAsync({\n      inject: [ConfigDto, PackageJsonDto],\n      useFactory: (configDto: ConfigDto, packageJson: PackageJsonDto) => ({\n        base: {\n          configEnv: configDto.configEnv,\n          name: packageJson.name,\n          version: packageJson.version,\n        },\n        level: configDto.logger.level,\n        pretty: configDto.logger.pretty,\n        disable: [Disable.messageTemplateHash]\n      })\n    }),\n  ],\n})\n```\n\n### Custom use\n\n#### Create custom module\n\n```typescript\nimport {\n  PinoHttpLoggerOptionsBuilder,\n  PinoLoggerFactory,\n} from \"@byndyusoft/nest-logger\";\nimport { Module } from \"@nestjs/common\";\nimport { LoggerModule } from \"nestjs-pino\";\n\n@Module({\n  imports: [\n    LoggerModule.forRootAsync({\n      useFactory: () => ({\n        pinoHttp: new PinoHttpLoggerOptionsBuilder()\n          .withLogger(new PinoLoggerFactory().create())\n          .build(),\n      }),\n    }),\n  ],\n})\nexport class InfrastructureModule {}\n```\n\n#### Usage custom serializers\n\nConfigure modules\n\n```typescript\nimport {\n  PinoHttpLoggerOptionsBuilder,\n  PinoLoggerFactory,\n  debugObjectSerializer,\n  jsonDebugObjectSerializer,\n} from \"@byndyusoft/nest-logger\";\nimport { Module } from \"@nestjs/common\";\nimport { LoggerModule } from \"nestjs-pino\";\n\n@Module({\n  imports: [\n    LoggerModule.forRootAsync({\n      useFactory: () => ({\n        pinoHttp: new PinoHttpLoggerOptionsBuilder()\n          .withLogger(new PinoLoggerFactory().create())\n          .withSerializers({\n            // you can use any name for key\n            debugData: debugObjectSerializer,\n            debugJsonData: jsonDebugObjectSerializer,\n          })\n          .build(),\n      }),\n    }),\n  ],\n})\nexport class InfrastructureModule {}\n```\n\n```typescript\nlogger.info({\n  msg: \"some message\",\n  // the object whose fields you want to serialize to human-readable string representation\n  debugData: {\n    entity: {\n      id: 1,\n      orders: [1, 2],\n    },\n  },\n  // the object whose fields you want to serialize to JSON string representation\n  debugJsonData: {\n    entity: {\n      id: 1,\n      orders: [1, 2],\n    },\n  },\n});\n```\n\n## Maintainers\n\n- [@Byndyusoft/owners](https://github.com/orgs/Byndyusoft/teams/owners) <<github.maintain@byndyusoft.com>>\n- [@Byndyusoft/team](https://github.com/orgs/Byndyusoft/teams/team)\n- [@tykachev](https://github.com/tykachev)\n\n## License\n\nThis repository is released under version 2.0 of the\n[Apache License](https://www.apache.org/licenses/LICENSE-2.0).\n","readmeFilename":"README.md"}