48 lines
1.9 KiB
TypeScript
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);
|
|
}
|
|
}
|