Advertisement
Guest User

Untitled

a guest
Feb 29th, 2020
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.09 KB | None | 0 0
  1. import bunyan, { Stream } from 'bunyan';
  2. import { LoggingBunyan } from '@google-cloud/logging-bunyan';
  3. import { ILogger, LoggerTransportArgs } from '../logger';
  4. import { Writable } from 'stream';
  5. import { gcpServiceContext } from '../../integrations/gcp';
  6.  
  7. const PrettyStream = require('bunyan-prettystream');
  8. const stringify = require('json-stringify-safe');
  9.  
  10. class FixMessageKeyStream extends Writable {
  11. write(chunk: any) {
  12. return process.stdout.write(
  13. stringify({
  14. ...chunk,
  15. message: chunk.msg,
  16. msg: undefined,
  17. }) + '\n'
  18. );
  19. }
  20. }
  21.  
  22. export function createBunyanLogger(args: LoggerTransportArgs): ILogger {
  23. const loggingBunyan = new LoggingBunyan({
  24. logName: 'logger_api_log',
  25. serviceContext: gcpServiceContext,
  26. });
  27.  
  28. const streams: Stream[] = args.gcpLogging
  29. ? [
  30. {
  31. level: args.level,
  32. type: 'raw',
  33. stream: new FixMessageKeyStream(),
  34. },
  35. loggingBunyan.stream(args.level),
  36. ]
  37. : [];
  38.  
  39. return bunyan.createLogger({
  40. name: args.name,
  41. streams,
  42. });
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement