{"_id":"@aleksdolgop/nestjs-logger","_rev":"2-1908fc712819c7e9207a3676ad2b5903","name":"@aleksdolgop/nestjs-logger","dist-tags":{"latest":"2.0.7"},"versions":{"2.0.5":{"name":"@aleksdolgop/nestjs-logger","version":"2.0.5","description":"Custom nestjs logger","author":{"name":"Aleksandr Dolgopolov"},"license":"UNLICENSED","publishConfig":{"access":"public"},"scripts":{"prebuild":"rimraf dist","build":"tsc","tsc":"tsc","prepare":"tsc","format":"prettier --write \"lib/**/*.ts\"","start":"nest start","start:dev":"nest start --watch","start:debug":"nest start --debug --watch","start:prod":"node dist/main","lint":"eslint \"lib/**/*.ts\" --fix","test":"jest","test:watch":"jest --watch"},"dependencies":{"@nestjs/common":"^8.0.0","@nestjs/core":"^8.0.0","@nestjs/platform-express":"^8.0.0","date-fns":"^2.29.2","pino":"^7.11.0","reflect-metadata":"^0.1.13","rimraf":"^3.0.2","rxjs":"^7.2.0","uuid":"^8.3.2"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@nestjs/testing":"^8.0.0","@semantic-release/git":"^10.0.1","@semantic-release/gitlab":"^9.3.0","@semantic-release/npm":"^9.0.1","@types/date-fns":"^2.6.0","@types/dateformat":"^5.0.0","@types/express":"^4.17.13","@types/jest":"27.4.1","@types/node":"^16.0.0","@types/pino":"^7.0.5","@types/supertest":"^2.0.11","@types/uuid":"^8.3.4","@typescript-eslint/eslint-plugin":"^5.0.0","@typescript-eslint/parser":"^5.0.0","eslint":"^8.0.1","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","jest":"^27.2.5","prettier":"^2.3.2","semantic-release":"^19.0.2","source-map-support":"^0.5.20","supertest":"^6.1.3","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.3.5"},"jest":{"moduleFileExtensions":["js","json","ts"],"rootDir":".","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"collectCoverageFrom":["**/*.(t|j)s"],"coverageDirectory":"./coverage","testEnvironment":"node","roots":["<rootDir>/"]},"gitHead":"a8e08d49cb132efda412b4f72139e3bb68c8d997","_id":"@aleksdolgop/nestjs-logger@2.0.5","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-eSmkWIsfERbFIbgIVTsVuRrlD0+xyU2dUphoONFJiu8cQuTM338vI7AcB1fKtWsGMACIWG3Gy89D7fzGAQaz2w==","shasum":"d51dfc1e2214b88965258fb5d7bc6bba6189702e","tarball":"https://registry.npmjs.org/@aleksdolgop/nestjs-logger/-/nestjs-logger-2.0.5.tgz","fileCount":32,"unpackedSize":121997,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCSleXiN7aTIWeTUALiYJUXKidfTjVV9WrkyDAgeAc5swIgN8RewDiUsKMWcFgKQHlH80Tk8RFj+MSCxgd9pUggYWo="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjBkc2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqjfw//fhCo90o5sOLl+DYexelkoUoB1CQR/+8phW74wEfZpl74kUaY\r\n0FZjCu/FRUmfPOdG0yP1FEpDtazXQaXRPPWfPwKA2GLPztuIe3RwlXUJT/LP\r\n4UciBvQSHe30MnKJ6Ka1LHFZ9fCAKN3y826VUK+JzrJfeH96VkdVt3NzNfdo\r\nXfY3XI9fRBPjRynofCg5FXOlC1/vBsiJ0h0oUDA7Ir7peRekMKlyOXh6jOUI\r\ne6Tqfd9wpsKMTfqTNCVEVtfwOPSmx403iIIDv+riyzPPQe4aw2wOT/tPOcAa\r\nNsGG6qB7skphFsacfnyxrd+32TjkGWyW7pRTnca9JAVnJyw4Rx/qiMZuiQD6\r\nBSW5d+TnR4lDCyPOtJnG0XVhEaNyBEP5dHyrDdGhaAFQUaDi3vQRm2iWYx4A\r\nPpV0Mk8bRaCGI9AsVJPxLobbKJYTlkvA1Kc+tfgcpCwCQNNmihssZQklgKRe\r\nWEb6u693EXApI4wijydfq32OHjpCFJhddsgRrOUjDcCXL/nZHkfyPMPCQtMl\r\nCak3hXbG9H2JSzfOLyzapjFG0WCN7K884uyPAcFxZSObQhqapSfZQ/MdTsR1\r\nqS24WXYHhC4/eSpCgXE6EQQ6carzJWhzBhrHg6RfQ0JI/reT/FRqpIH7UVbJ\r\nS4l7ZjsJx9oLOoJEcRNARKbozrf4J4UpIkc=\r\n=Vvfh\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"aleksdolgop","email":"dolopolov9@gmail.com"},"directories":{},"maintainers":[{"name":"aleksdolgop","email":"dolopolov9@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-logger_2.0.5_1661355830783_0.12178283468357787"},"_hasShrinkwrap":false},"2.0.6":{"name":"@aleksdolgop/nestjs-logger","version":"2.0.6","description":"Custom nestjs logger","author":{"name":"Aleksandr Dolgopolov"},"license":"UNLICENSED","publishConfig":{"access":"public"},"scripts":{"prebuild":"rimraf dist","build":"tsc","tsc":"tsc","prepare":"tsc","format":"prettier --write \"lib/**/*.ts\"","start":"nest start","start:dev":"nest start --watch","start:debug":"nest start --debug --watch","start:prod":"node dist/main","lint":"eslint \"lib/**/*.ts\" --fix","test":"jest","test:watch":"jest --watch"},"dependencies":{"@nestjs/common":"^8.0.0","@nestjs/core":"^8.0.0","@nestjs/platform-express":"^8.0.0","date-fns":"^2.29.2","pino":"^7.11.0","reflect-metadata":"^0.1.13","rimraf":"^3.0.2","rxjs":"^7.2.0","uuid":"^8.3.2"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@nestjs/testing":"^8.0.0","@semantic-release/git":"^10.0.1","@semantic-release/gitlab":"^9.3.0","@semantic-release/npm":"^9.0.1","@types/date-fns":"^2.6.0","@types/dateformat":"^5.0.0","@types/express":"^4.17.13","@types/jest":"27.4.1","@types/node":"^16.0.0","@types/pino":"^7.0.5","@types/supertest":"^2.0.11","@types/uuid":"^8.3.4","@typescript-eslint/eslint-plugin":"^5.0.0","@typescript-eslint/parser":"^5.0.0","eslint":"^8.0.1","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","jest":"^27.2.5","prettier":"^2.3.2","semantic-release":"^19.0.2","source-map-support":"^0.5.20","supertest":"^6.1.3","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.3.5"},"jest":{"moduleFileExtensions":["js","json","ts"],"rootDir":".","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"collectCoverageFrom":["**/*.(t|j)s"],"coverageDirectory":"./coverage","testEnvironment":"node","roots":["<rootDir>/"]},"gitHead":"c35882dde78273e0ff0750ded8e2768bf4b32427","_id":"@aleksdolgop/nestjs-logger@2.0.6","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-yV6fBdcLb9RXzzMeyjI4wlpqL7lQwi1THWBVP0zNr4ufjHS/2+2nTRyqqsfgXBUqKmsDyOYpa4rBKffLXOppTQ==","shasum":"461f99dd760f13ce67d26c837c2a9dd08b2be3ec","tarball":"https://registry.npmjs.org/@aleksdolgop/nestjs-logger/-/nestjs-logger-2.0.6.tgz","fileCount":32,"unpackedSize":121843,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHMuB2AV/TKayxqfMcJNiddqCgmfkSOGveY/GrJjt3U1AiEAhwtzBIICX37SUcpaRx63LeqLUDtL+9iiKZDOB8H8mOY="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjBkhhACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpuGA/9HRiFV1OuVENSxd55yV3yPc4qplYhCATvdKUygJxp5oMREtNc\r\nWOqaCYILRGIfhjGQDzo866b1RsMR3wFPFRYtfCW/YLzB3HgmgJt/JNV2JlvA\r\n6BIVXtJLeEXB/IMLfHOVs7Vz645SjDjEDaB5/tY2XLBsdg4MFeMsotfeoLI1\r\nQvzWCv9lJ+Q1mTO/ySTe+ViHGsxtiRbeRQ2CtxY7CZF19Wg1J6SQPPpG0S3k\r\nvDL4Ju84bqFnQVVtbJwIs61qrxBTL3W6VSvIedxVnPTm9kyVo5G7vxq6vV+h\r\n4cacRuJafUozqd3G6GJW8I75j19d4zlWMME99hsJBCq2lfPSpAhfgH1BV/U2\r\nULBLWky2ia3ATKSCsSN9tuWKZtF1Yi4hRmGAhJBvXo+KONQXh/88EhZy9OGx\r\nvTNh8aNBkqoqIWbNV5wnazzhFBAIJ08CG5SKhDnUYkBgOt9O6I/q+RzGnhRB\r\nwtwDGG37THhkFHtZbZDOSPZpOTNGsIEqxTzL8i37Afc7VLgD3X5PPR+jcry8\r\nwJLXgI+xOBGqksz9ZiN3ZTOZEdXLeEn5Xu3Yy/bolBsQPkSSxspZvOYxDuFY\r\nK0OK29fUTI0mB47xfNaRuGA0QeS4pTwFuwAF1vkSAY2vLkbuJKxMGkiIdCV+\r\n+JUfHU16RZw2bdW0vT9ZobjJB2Cpt82I3hM=\r\n=3ntB\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"aleksdolgop","email":"dolopolov9@gmail.com"},"directories":{},"maintainers":[{"name":"aleksdolgop","email":"dolopolov9@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-logger_2.0.6_1661356129540_0.27495650730684296"},"_hasShrinkwrap":false},"2.0.7":{"name":"@aleksdolgop/nestjs-logger","version":"2.0.7","description":"Custom nestjs logger","author":{"name":"Aleksandr Dolgopolov"},"license":"UNLICENSED","publishConfig":{"access":"public"},"scripts":{"prebuild":"rimraf dist","build":"tsc","tsc":"tsc","prepare":"tsc","format":"prettier --write \"lib/**/*.ts\"","start":"nest start","start:dev":"nest start --watch","start:debug":"nest start --debug --watch","start:prod":"node dist/main","lint":"eslint \"lib/**/*.ts\" --fix","test":"jest","test:watch":"jest --watch"},"dependencies":{"@nestjs/common":"^8.0.0","@nestjs/core":"^8.0.0","@nestjs/platform-express":"^8.0.0","date-fns":"^2.29.2","pino":"^7.11.0","reflect-metadata":"^0.1.13","rimraf":"^3.0.2","rxjs":"^7.2.0","uuid":"^8.3.2"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@nestjs/testing":"^8.0.0","@semantic-release/git":"^10.0.1","@semantic-release/gitlab":"^9.3.0","@semantic-release/npm":"^9.0.1","@types/date-fns":"^2.6.0","@types/dateformat":"^5.0.0","@types/express":"^4.17.13","@types/jest":"27.4.1","@types/node":"^16.0.0","@types/pino":"^7.0.5","@types/supertest":"^2.0.11","@types/uuid":"^8.3.4","@typescript-eslint/eslint-plugin":"^5.0.0","@typescript-eslint/parser":"^5.0.0","eslint":"^8.0.1","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","jest":"^27.2.5","prettier":"^2.3.2","semantic-release":"^19.0.2","source-map-support":"^0.5.20","supertest":"^6.1.3","ts-jest":"^27.0.3","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.3.5"},"jest":{"moduleFileExtensions":["js","json","ts"],"rootDir":".","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"collectCoverageFrom":["**/*.(t|j)s"],"coverageDirectory":"./coverage","testEnvironment":"node","roots":["<rootDir>/"]},"gitHead":"4e9b5ad05a3f5a6780d539cf7b381dd9685ff752","_id":"@aleksdolgop/nestjs-logger@2.0.7","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-I414xtW1jkkJKE3YYL8KxRJIPzxxErEdOBMhepCOcLYj1bzHXxmJ9jaNDBjbH5Jx+xdaqf2v1z+FRcuqkvnrQw==","shasum":"c8f3a550609bd82e8fe459a890b67ba9f4986641","tarball":"https://registry.npmjs.org/@aleksdolgop/nestjs-logger/-/nestjs-logger-2.0.7.tgz","fileCount":26,"unpackedSize":110659,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAf/TWwBKuj00Q2+M3r9m012jxd6ub6BHdpYO4hEXt00AiBfenHTaKnp5KFlGvr1F2SuDZwQ91MeFy44QV7X7/4G3w=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjBlKSACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpRWhAAnlXOPsh7frOIfQmezC7TM053mkhLdUNaoXR3ANZgPx2+vKxz\r\ndb/lbpqABKBTzItOSo/tRxdfWFDoYnpW8zQoaNV0mVgOYnLFDEW2Zr9GZ56/\r\nmZpgdhZf5s4t8ABj4FbdEUKo+ikBMJyX3KVPEuwwatNhtRZI3mLe3nUZQNMJ\r\nK7HNOEtMyGLDpicl5Brx65z51pNP2B8YmaPeAWZ7APgGi+Ji3HBl9SXsIcwu\r\nwBKE5Zvvg6u3Kux6756zEH/dOstst0L0lHKz4Yhie/H8Ng3M4JUlZrTYNRBv\r\ngo1lhAlWBZv0XPSWFdAwaKUE+8o365EZVAu/kFIcOgBvDUmwn2XR/DBNNDb/\r\nu7nLsL2gmj2lUj3+7RS2HAqOD78uGCgYuIV+k8LRkf0Vr0UURFakFdxYtnxl\r\nIfyOsTLjxOMVu0Ue5TIpCNDvLE3nufMD1ClBYHVwmPEWRB1QmcVBLQ6bbaxH\r\nKr1X+A+4FYnjGKDJFO60eNYq6q+gKi25w/M7UVBLdwFdC1lQJ7WAZWsl/vEo\r\nWlnVqhgFi5SaVbgSdJdaW7XGLSHYiX7z6B+M5r+l9Neddi7hD/mxFqZFmGhj\r\nRFw3lRG9H/UzWDV02+htwUdkckB+5Xfw3b4c+2NdOEAwJsjbavbBOEmh4nji\r\ngLCkrNQqb77ezVo2aBya8PXeNmjDTHX6r5Q=\r\n=VGle\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"aleksdolgop","email":"dolopolov9@gmail.com"},"directories":{},"maintainers":[{"name":"aleksdolgop","email":"dolopolov9@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-logger_2.0.7_1661358737918_0.8794602852006574"},"_hasShrinkwrap":false}},"time":{"created":"2022-08-24T15:43:50.654Z","2.0.5":"2022-08-24T15:43:50.954Z","modified":"2022-08-24T16:32:18.142Z","2.0.6":"2022-08-24T15:48:49.741Z","2.0.7":"2022-08-24T16:32:18.072Z"},"maintainers":[{"name":"aleksdolgop","email":"dolopolov9@gmail.com"}],"description":"Custom nestjs logger","author":{"name":"Aleksandr Dolgopolov"},"license":"UNLICENSED","readme":"# Nestjs custom logger module\n\nThe logger can automatically create a trace id for an asynchronous or synchronous handler.\nIt is also possible to set your own unique identifier, for example, if it came in the request \nheader in `X-Request-Id`\n\n## Install \n```shell\nnpm i @aleksdolgop/nestjs-logger\n```\n\n## Dependencies\n\n- pino\n- async_hooks\n- nestjs\n- nodejs version 16 and later\n\n## Example\n\n### Change standart nestjs logger\n\nLogger Options\n```typescript\nexport interface LoggerOptions {\n  /**\n   * Makes the module global\n   * @default false\n   */\n  isGlobal?: boolean;\n  /**\n   * Turn on or off logger\n   * @default true\n   */\n  enable?: boolean;\n  /**\n   * log level\n   * @default 'debug'\n   */\n  level?: 'debug' | 'info';\n  /**\n   * Automatically creates a traceId on the first call to the log in the nodejs handler\n   * @default false\n   */\n  autoCreateTraceId?: boolean;\n  /**\n   * Service name. Add 'service' param in log\n   */\n  serviceName?: string;\n\n  /**\n   * disable pino, enable console log format\n   * @default true\n   */\n  enableNativeLogger?: boolean;\n\n  /**\n   * npm date-fns format mask\n   * @see https://www.npmjs.com/package/date-fns\n   */\n  dateFormatMask?: string;\n}\n```\n\n**main.ts**\n\n```typescript\nimport { NestFactory } from '@nestjs/core';\nimport { AppModule } from './app.module';\nimport { LoggerService } from '@aleksdolgop/nestjs-logger';\n\nconst isDevMode = process.env.NODE_ENV !== 'production';\n\nasync function bootstrap() {\n  const app = await NestFactory.create(AppModule, {\n    ...(!isDevMode && { logger: false }),\n  });\n  const logger = app.get(LoggerService);\n  app.useLogger(logger);\n  logger.log('Bootstrap', 'Server started');\n}\nbootstrap();\n```\n\n### Configure logger\n\nSync configuration\n\n**app.module.ts**\n\n```typescript\nimport { Module } from '@nestjs/common';\nimport { ConfigModule } from '@nestjs/config';\nimport { LoggerModule } from '@aleksdolgop/nestjs-logger';\n\nconst isDevMode = process.env.NODE_ENV !== 'production';\n\n@Module({\n  imports: [\n    LoggerModule.forRoot({\n      level: isDevMode ? 'debug' : 'info',\n      serviceName: 'protocol-mtproto',\n      autoCreateTraceId: true,\n    }),\n  ],\n  controllers: [],\n  providers: [],\n})\nexport class AppModule {}\n```\n\nAsync configuration\n\n```typescript\nimport { Module } from '@nestjs/common';\nimport { ConfigModule, ConfigService } from '@nestjs/config';\nimport { LoggerModule } from '@aleksdolgop/nestjs-logger';\n\n@Module({\n  imports: [\n    ConfigModule.forRoot({\n      isGlobal: true,\n      envFilePath: '.env',\n    }),\n    LoggerModule.forRootAsync({\n      inject: [ConfigModule],\n      useFactory: (configService: ConfigService) => {\n        const serviceName = configService.get('APP_NAME');\n        const env = configService.get('NODE_ENV');\n        const autoCreateTraceId = configService.get<boolean>(\n          'LOGGER_ENABLE_TRACE_ID',\n          true,\n        );\n        const level = env !== 'production' ? 'debug' : 'info';\n        return {\n          level,\n          serviceName,\n          autoCreateTraceId,\n        };\n      },\n    }),\n  ],\n  controllers: [],\n  providers: [],\n})\nexport class AppModule {}\n```\n\nLog example\n`{\"level\":\"info\",\"time\":1653367786531,\"traceId\":\"4a8d43a6-24b8-426d-87c3-a8c1b096bfa9\",\"context\":\"Bootstrap\",\"service\":\"service-name\",\"msg\":\"Server started\"}\n`","readmeFilename":"README.md"}