summaryrefslogtreecommitdiff
path: root/src/lib/pino.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/pino.ts')
-rw-r--r--src/lib/pino.ts29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/lib/pino.ts b/src/lib/pino.ts
new file mode 100644
index 0000000..a396361
--- /dev/null
+++ b/src/lib/pino.ts
@@ -0,0 +1,29 @@
+import pino from "pino";
+import type { LokiOptions } from "pino-loki";
+
+let transport;
+
+if (process.env.NODE_ENV === "production") {
+ transport = pino.transport<LokiOptions>({
+ target: "pino-loki",
+ options: {
+ host: process.env.LOKI_HOST!,
+ basicAuth: {
+ username: process.env.LOKI_USERNAME!,
+ password: process.env.LOKI_PASSWORD!,
+ },
+ },
+ });
+} else {
+ transport = pino.transport({
+ target: "pino-pretty",
+ options: {
+ colorize: true,
+ translateTime: "SYS:standard",
+ ignore: "pid,hostname",
+ },
+ });
+}
+
+/** Application-wide logger instance that writes to Loki in production, pretty-prints locally */
+export const logger = pino(transport);