Skip to content
This repository has been archived by the owner on May 3, 2024. It is now read-only.

Commit

Permalink
Merge branch 'feature/pretty-logger-with-otel-local' of https://githu…
Browse files Browse the repository at this point in the history
  • Loading branch information
10xLaCroixDrinker committed Feb 13, 2024
2 parents d4bdbce + a6ba2fb commit 608934c
Showing 1 changed file with 25 additions and 27 deletions.
52 changes: 25 additions & 27 deletions src/server/utils/logging/logger.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,33 +26,31 @@ import baseConfig from './config/base';
export function createLogger() {
const useProductionConfig = !!(argv.logFormat === 'machine' || process.env.NODE_ENV !== 'development');

let pinoConfig = baseConfig;
const transportStreams = [];

if (process.env.OTEL_EXPORTER_OTLP_LOGS_ENDPOINT) {
transportStreams.push(createOtelTransport({
grpc: true,
console: process.env.NODE_ENV === 'development' && argv.logFormat === 'machine',
}));
pinoConfig = deepmerge(baseConfig, otelConfig);
} else if (useProductionConfig) {
pinoConfig = deepmerge(baseConfig, productionConfig);
}

if (!useProductionConfig) {
// eslint-disable-next-line global-require -- do not load development logger in production
transportStreams.push(require('./config/development').default);
}

let transport;

if (transportStreams.length === 1) {
[transport] = transportStreams;
} else if (transportStreams.length > 1) {
transport = multistream(transportStreams);
}

return pino(pinoConfig, transport);
const getPinoConfig = () => {
if (process.env.OTEL_EXPORTER_OTLP_LOGS_ENDPOINT) return deepmerge(baseConfig, otelConfig);
if (useProductionConfig) return deepmerge(baseConfig, productionConfig);
return baseConfig;
};

const getTransport = () => {
const transportStreams = [];
if (process.env.OTEL_EXPORTER_OTLP_LOGS_ENDPOINT) {
transportStreams.push(createOtelTransport({
grpc: true,
console: process.env.NODE_ENV === 'development' && argv.logFormat === 'machine',
}));
}
if (!useProductionConfig) {
// eslint-disable-next-line global-require -- do not load development logger in production
transportStreams.push(require('./config/development').default);
}

if (transportStreams.length === 1) return transportStreams[0];
if (transportStreams.length > 1) return multistream(transportStreams);
return undefined;
};

return pino(getPinoConfig(), getTransport());
}

export default createLogger();

0 comments on commit 608934c

Please sign in to comment.