Added message cache to prevent error overflows.
This commit is contained in:
parent
909ef9d242
commit
54a1e74e27
@ -1,11 +1,17 @@
|
||||
let ipc = null
|
||||
let logMessages = new Set()
|
||||
|
||||
try {
|
||||
ipc = require('electron').ipcRenderer
|
||||
} catch (e) {}
|
||||
} catch (e) {
|
||||
console.log("Cannot use electron logging.")
|
||||
}
|
||||
|
||||
/** Basic class for app specific logging requirements.
|
||||
* Can be used to implement persistent logging in electron apps.
|
||||
* Uses a logMessage cache to prevent error overflows. This is
|
||||
* needed since errors may occur very frequently
|
||||
* (e.g. display update loops at 60fps, programmatic loops, ...).
|
||||
*/
|
||||
export default class Logging {
|
||||
|
||||
@ -21,19 +27,33 @@ export default class Logging {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Static warn function.
|
||||
* Emits each warning only once per session.
|
||||
* @param {*} message
|
||||
*/
|
||||
static warn(message) {
|
||||
if (!logMessages.has(message)) {
|
||||
if (ipc) {
|
||||
ipc.send('warn', message)
|
||||
} else {
|
||||
console.warn(message)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Static error function.
|
||||
* Emits each error message only once per session.
|
||||
* @param {*} message
|
||||
*/
|
||||
static error(message) {
|
||||
if (!logMessages.has(message)) {
|
||||
if (ipc) {
|
||||
ipc.send('error', message)
|
||||
} else {
|
||||
console.error(message)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user