Spaces:
Paused
Paused
File size: 2,004 Bytes
0e759d2 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
import * as winston from "winston";
import { configDotenv } from "dotenv";
configDotenv();
const logFormat = winston.format.printf(
(info) =>
`${info.timestamp} ${info.level} [${info.metadata.module ?? ""}:${info.metadata.method ?? ""}]: ${info.message} ${
info.level.includes("error") || info.level.includes("warn")
? JSON.stringify(info.metadata, (_, value) => {
if (value instanceof Error) {
return {
...value,
name: value.name,
message: value.message,
stack: value.stack,
cause: value.cause,
};
} else {
return value;
}
})
: ""
}`,
);
export const logger = winston.createLogger({
level: process.env.LOGGING_LEVEL?.toLowerCase() ?? "debug",
format: winston.format.json({
replacer(key, value) {
if (value instanceof Error) {
return {
...value,
name: value.name,
message: value.message,
stack: value.stack,
cause: value.cause,
};
} else {
return value;
}
},
}),
transports: [
...(process.env.FIRECRAWL_LOG_TO_FILE
? [
new winston.transports.File({
filename:
"firecrawl-" +
(process.argv[1].includes("worker") ? "worker" : "app") +
"-" +
crypto.randomUUID() +
".log",
}),
]
: []),
new winston.transports.Console({
format: winston.format.combine(
winston.format.timestamp({ format: "YYYY-MM-DD HH:mm:ss" }),
winston.format.metadata({
fillExcept: ["message", "level", "timestamp"],
}),
...((process.env.ENV === "production" &&
process.env.SENTRY_ENVIRONMENT === "dev") ||
process.env.ENV !== "production"
? [winston.format.colorize(), logFormat]
: []),
),
}),
],
});
|