wuhu-torn-helper/src/class/handler/ViewLogsHandler.ts
2022-11-04 17:33:19 +08:00

48 lines
1.9 KiB
TypeScript

import WuhuBase from "../WuhuBase";
import Log from "../Log";
import Popup from "../utils/Popup";
import CommonUtils from "../utils/CommonUtils";
import VIEW_LOGS_HANDLER_HTML from "../../static/html/view_logs_handler.html";
export default class ViewLogsHandler extends WuhuBase {
className = 'ViewLogsHandler';
public handle(): void {
let logCounter = Log.getCounter();
let pop = new Popup(VIEW_LOGS_HANDLER_HTML
.replace('{{}}', logCounter.info.toString())
.replace('{{}}', logCounter.warning.toString())
.replace('{{}}', logCounter.error.toString()), '查看日志');
window.setTimeout(() => {
let container = pop.getElement().querySelector('div');
let text = document.createElement('div');
let logs = Log.getLogs().split('\r\n');
logs.forEach(log => {
let p = document.createElement('p');
p.innerText = log;
if (log.slice(0, 10).includes('ERR')) {
p.style.backgroundColor = '#ff000080';
} else if (log.slice(0, 10).includes('WRN')) {
p.style.backgroundColor = '#ffff0080';
}
text.append(p);
});
pop.getElement().querySelector('button').addEventListener('click', () => window.setTimeout(() => {
CommonUtils.getInstance()
.exportTextFile(
'wuhu_log_' + Log.getTime()
.replace('[', '')
.replace(']', '')
.replace(' ', '')
.replace('.', '')
.replaceAll('-', '')
.replaceAll(':', '') + '.log',
[Log.getLogs()]
);
}, 0));
container.innerHTML = '';
container.append(text);
}, 0);
}
}