Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import bunyan, { Stream } from 'bunyan';
- import { LoggingBunyan } from '@google-cloud/logging-bunyan';
- import { ILogger, LoggerTransportArgs } from '../logger';
- import { Writable } from 'stream';
- import { gcpServiceContext } from '../../integrations/gcp';
- const PrettyStream = require('bunyan-prettystream');
- const stringify = require('json-stringify-safe');
- class FixMessageKeyStream extends Writable {
- write(chunk: any) {
- return process.stdout.write(
- stringify({
- ...chunk,
- message: chunk.msg,
- msg: undefined,
- }) + '\n'
- );
- }
- }
- export function createBunyanLogger(args: LoggerTransportArgs): ILogger {
- const loggingBunyan = new LoggingBunyan({
- logName: 'logger_api_log',
- serviceContext: gcpServiceContext,
- });
- const streams: Stream[] = args.gcpLogging
- ? [
- {
- level: args.level,
- type: 'raw',
- stream: new FixMessageKeyStream(),
- },
- loggingBunyan.stream(args.level),
- ]
- : [];
- return bunyan.createLogger({
- name: args.name,
- streams,
- });
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement