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

Commit

Permalink
fix: types for logger service
Browse files Browse the repository at this point in the history
  • Loading branch information
mariusbegby committed Aug 27, 2023
1 parent 064db46 commit f4f4182
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 7 deletions.
16 changes: 9 additions & 7 deletions src/services/logger.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
import pino from 'pino';
import config from 'config';
import { LoggerOptions } from '../types/configTypes';
import { TargetOptions } from '../types/serviceTypes';
import type { LokiOptions } from 'pino-loki';

// Retrieve logger options from config
const loggerOptions: LoggerOptions = config.get('loggerOptions');

const targets = [
const targets: TargetOptions[] = [
{
target: 'pino/file',
level: loggerOptions.minimumLogLevel,
Expand All @@ -17,7 +20,7 @@ const targets = [
},
{
target: 'pino/file',
level: pino.levels.values.info,
level: pino.levels.values.info.toString(),
options: {
destination: './logs/app-info.log',
mkdir: true,
Expand All @@ -27,7 +30,7 @@ const targets = [
},
{
target: 'pino/file',
level: pino.levels.values.error,
level: pino.levels.values.error.toString(),
options: {
destination: './logs/app-error.log',
mkdir: true,
Expand All @@ -46,11 +49,9 @@ const targets = [

// Check for Loki credentials and add Loki as a target if present
if (process.env.LOKI_AUTH_PASSWORD && process.env.LOKI_AUTH_USERNAME) {
targets.push({
const transport = pino.transport<LokiOptions>({
target: 'pino-loki',
level: loggerOptions.minimumLogLevel,
options: {
sync: false,
batching: false,
interval: 5,
host: process.env.LOKI_HOST || 'http://localhost:3100',
Expand All @@ -60,6 +61,8 @@ if (process.env.LOKI_AUTH_PASSWORD && process.env.LOKI_AUTH_USERNAME) {
}
}
});

targets.push(transport);
}

const transport = pino.transport({ targets });
Expand All @@ -77,4 +80,3 @@ const logLevelConfig = {

const logger = pino(logLevelConfig, transport);
export default logger;
module.exports = logger;
18 changes: 18 additions & 0 deletions src/types/serviceTypes.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
export type TargetOptions = {
target: string;
level: string;
options: {
destination?: string;
mkdir?: boolean;
sync?: boolean;
minLength?: number;
colorize?: boolean;
batching?: boolean;
interval?: number;
host?: string;
basicAuth?: {
username: string;
password: string;
};
};
};

0 comments on commit f4f4182

Please # to comment.