Skip to content

Commit

Permalink
chore: generate log controllers in the helper functions
Browse files Browse the repository at this point in the history
  • Loading branch information
devceline committed Mar 15, 2024
1 parent 09d1c03 commit 0833dd5
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 10 deletions.
2 changes: 1 addition & 1 deletion misc/logger/src/clientChunkLogger.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { LogLinkedList } from "./linkedList";
import type { LoggerOptions } from 'pino'
import { levels } from 'pino'

export class ClientChunkLogger {
export default class ClientChunkLogger {
private logs: LogLinkedList;
private MAX_LOG_SIZE_IN_BYTES: number;
private level: LoggerOptions['level']
Expand Down
2 changes: 1 addition & 1 deletion misc/logger/src/serverChunkLogger.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { LogLinkedList } from "./linkedList";
import type { LoggerOptions } from 'pino'
import { levels } from 'pino'

export class ServerChunkLogger extends Writable {
export default class ServerChunkLogger extends Writable {
private logs: LogLinkedList;
private MAX_LOG_SIZE_IN_BYTES: number;
private level: LoggerOptions['level']
Expand Down
21 changes: 13 additions & 8 deletions misc/logger/src/utils.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import pino, { Logger, LoggerOptions } from "pino";
import type { Writable } from "stream";

import { PINO_CUSTOM_CONTEXT_KEY, PINO_LOGGER_DEFAULTS } from "./constants";
import ClientChunkLogger from "./clientChunkLogger";
import ServerChunkLogger from "./serverChunkLogger";

export function getDefaultLoggerOptions(opts?: LoggerOptions): LoggerOptions {
return {
Expand Down Expand Up @@ -60,28 +61,32 @@ export function generateChildLogger(
return setBrowserLoggerContext(child, context, customContextKey);
}

export function generateBrowserLogger(params: {
writeFunction: (obj: object) => void;
export function generateClientLogger(params: {
opts?: LoggerOptions;
maxSizeInBytes?: number
}) {
const clientLogger = new ClientChunkLogger(params.opts?.level, params.maxSizeInBytes)
const logger = pino({
...params.opts,
level: 'trace',
browser: {
...params.opts?.browser,
write: (obj) => params.writeFunction(obj),
write: (obj) => clientLogger.write(obj),
},
});

return logger;
return { logger, chunkLoggerController: clientLogger };
}

export function generateServerLogger(params: { stream: Writable; opts?: LoggerOptions }) {
export function generateServerLogger(params: { maxSizeInBytes?: number, opts?: LoggerOptions }) {
const serverLogger = new ServerChunkLogger(params.opts?.level, params.maxSizeInBytes)
const logger = pino(
{
...params.opts,
level: 'trace'
},
params.stream,
serverLogger,
);

return logger;
return { logger, chunkLoggerController: serverLogger };
}

0 comments on commit 0833dd5

Please sign in to comment.