2023-08-18 11:57:33 +00:00
|
|
|
import * as log from "log/mod.ts";
|
|
|
|
import { isDenoDeploy } from "./utils.ts";
|
|
|
|
|
2023-08-18 12:58:05 +00:00
|
|
|
const getArgStr = (arg: unknown) => {
|
|
|
|
if (Array.isArray(arg)) {
|
|
|
|
return arg.join(", ");
|
|
|
|
}
|
|
|
|
if (typeof arg === "object") {
|
|
|
|
try {
|
|
|
|
return JSON.stringify(arg, null, 2);
|
|
|
|
} catch (_e) {
|
|
|
|
return arg?.toString() ?? arg;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return arg;
|
|
|
|
};
|
|
|
|
|
2023-08-18 11:57:33 +00:00
|
|
|
log.setup({
|
|
|
|
handlers: {
|
2023-08-18 12:54:57 +00:00
|
|
|
console: new log.handlers.ConsoleHandler("DEBUG", {
|
|
|
|
formatter: (logRecord) => {
|
|
|
|
let msg = `${logRecord.levelName} ${logRecord.msg}`;
|
|
|
|
|
|
|
|
logRecord.args.forEach((arg, index) => {
|
2023-08-18 12:58:05 +00:00
|
|
|
msg += `, arg${index}: ${getArgStr(arg)}`;
|
2023-08-18 12:54:57 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
return msg;
|
|
|
|
},
|
|
|
|
}),
|
2023-08-18 11:57:33 +00:00
|
|
|
},
|
|
|
|
loggers: {
|
|
|
|
default: {
|
|
|
|
level: isDenoDeploy ? "INFO" : "DEBUG",
|
2023-08-18 12:54:57 +00:00
|
|
|
handlers: ["console"],
|
2023-08-18 11:57:33 +00:00
|
|
|
},
|
|
|
|
},
|
|
|
|
});
|