Skip to content

Commit f7facc3

Browse files
committed
fix: logger
1 parent 8ace2a0 commit f7facc3

File tree

2 files changed

+47
-30
lines changed

2 files changed

+47
-30
lines changed

apps/basket/src/lib/logger.ts

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,3 @@
1-
// import { logger as sharedLogger } from "@databuddy/shared/logger";
1+
import { createLogger } from "@databuddy/shared/logger";
22

3-
// export const logger = sharedLogger.child({
4-
// service: "basket",
5-
// });
6-
7-
import pino from "pino";
8-
9-
export const logger = pino({
10-
level: "debug",
11-
name: "basket",
12-
});
3+
export const logger = createLogger("basket");
Lines changed: 45 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,59 @@
11
import pino from "pino";
22

3-
const token = process.env.AXIOM_TOKEN as string;
4-
const dataset = process.env.AXIOM_DATASET as string;
3+
type AxiomConfig = {
4+
token: string;
5+
dataset: string;
6+
};
7+
8+
function canLoadAxiomTransport(): boolean {
9+
try {
10+
require.resolve("@axiomhq/pino");
11+
return true;
12+
} catch {
13+
return false;
14+
}
15+
}
516

6-
const createLoggerConfig = (name: string): pino.LoggerOptions => {
17+
function createLoggerConfig(
18+
name: string,
19+
axiomConfig?: AxiomConfig
20+
): pino.LoggerOptions {
721
const config: pino.LoggerOptions = {
822
level: "debug",
923
name,
1024
};
1125

12-
if (token && dataset) {
13-
try {
14-
config.transport = {
15-
target: "@axiomhq/pino",
16-
options: {
17-
token,
18-
dataset,
19-
},
20-
};
21-
} catch {
22-
// Transport not available, fallback to default logger
23-
}
26+
// Only set up Axiom transport if:
27+
// 1. Axiom config is provided
28+
// 2. The @axiomhq/pino module can be resolved
29+
if (axiomConfig?.token && axiomConfig?.dataset && canLoadAxiomTransport()) {
30+
config.transport = {
31+
target: "@axiomhq/pino",
32+
options: {
33+
token: axiomConfig.token,
34+
dataset: axiomConfig.dataset,
35+
},
36+
};
2437
}
2538

2639
return config;
27-
};
40+
}
41+
42+
const defaultAxiomConfig: AxiomConfig | undefined =
43+
process.env.AXIOM_TOKEN && process.env.AXIOM_DATASET
44+
? {
45+
token: process.env.AXIOM_TOKEN,
46+
dataset: process.env.AXIOM_DATASET,
47+
}
48+
: undefined;
2849

29-
export const logger = pino(createLoggerConfig("databuddy"));
50+
export const logger = pino(
51+
createLoggerConfig("databuddy", defaultAxiomConfig)
52+
);
3053

31-
export function createLogger(name: string) {
32-
return pino(createLoggerConfig(name));
54+
export function createLogger(
55+
name: string,
56+
axiomConfig?: AxiomConfig
57+
): pino.Logger {
58+
return pino(createLoggerConfig(name, axiomConfig));
3359
}

0 commit comments

Comments
 (0)