mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-25 18:26:35 +00:00
Ignore errors during logging (#17893)
This commit is contained in:
parent
87d53e38c4
commit
2352d05573
@ -40,30 +40,46 @@ export const loggingMixin = <T extends Constructor<HassBaseEl>>(
|
|||||||
ev.stopPropagation();
|
ev.stopPropagation();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const { createLogMessage } = await import("../resources/log-message");
|
let message;
|
||||||
this._writeLog({
|
try {
|
||||||
// The error object from browsers includes the message and a stack trace,
|
const { createLogMessage } = await import("../resources/log-message");
|
||||||
// so use the data in the error event just as fallback
|
message = await createLogMessage(
|
||||||
message: await createLogMessage(
|
|
||||||
ev.error,
|
ev.error,
|
||||||
"Uncaught error",
|
"Uncaught error",
|
||||||
ev.message,
|
ev.message,
|
||||||
`@${ev.filename}:${ev.lineno}:${ev.colno}`
|
`@${ev.filename}:${ev.lineno}:${ev.colno}`
|
||||||
),
|
);
|
||||||
});
|
await this._writeLog({
|
||||||
|
// The error object from browsers includes the message and a stack trace,
|
||||||
|
// so use the data in the error event just as fallback
|
||||||
|
message,
|
||||||
|
});
|
||||||
|
} catch (e) {
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
|
console.error("Error during logging error:", message, e);
|
||||||
|
// catch errors during logging so we don't get into a loop
|
||||||
|
}
|
||||||
});
|
});
|
||||||
window.addEventListener("unhandledrejection", async (ev) => {
|
window.addEventListener("unhandledrejection", async (ev) => {
|
||||||
if (!this.hass?.connected) {
|
if (!this.hass?.connected) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const { createLogMessage } = await import("../resources/log-message");
|
let message;
|
||||||
this._writeLog({
|
try {
|
||||||
message: await createLogMessage(
|
const { createLogMessage } = await import("../resources/log-message");
|
||||||
|
message = await createLogMessage(
|
||||||
ev.reason,
|
ev.reason,
|
||||||
"Unhandled promise rejection"
|
"Unhandled promise rejection"
|
||||||
),
|
);
|
||||||
level: "debug",
|
await this._writeLog({
|
||||||
});
|
message,
|
||||||
|
level: "debug",
|
||||||
|
});
|
||||||
|
} catch (e) {
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
|
console.error("Error during logging error:", message, e);
|
||||||
|
// catch errors during logging so we don't get into a loop
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -75,7 +91,7 @@ export const loggingMixin = <T extends Constructor<HassBaseEl>>(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private _writeLog(log: WriteLogParams) {
|
private _writeLog(log: WriteLogParams) {
|
||||||
this.hass?.callService("system_log", "write", {
|
return this.hass?.callService("system_log", "write", {
|
||||||
logger: `frontend.${
|
logger: `frontend.${
|
||||||
__DEV__ ? "js_dev" : "js"
|
__DEV__ ? "js_dev" : "js"
|
||||||
}.${__BUILD__}.${__VERSION__.replace(".", "")}`,
|
}.${__BUILD__}.${__VERSION__.replace(".", "")}`,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user