diff --git a/index.js b/index.js index 51bb8c9..337f915 100644 --- a/index.js +++ b/index.js @@ -78,66 +78,69 @@ const { const io = require('./utility/io') -const should_log = true -if (should_log) { - setInterval(async () => { - await io.deleteFileIfLargerThan('log.txt', 200) - }, 2 * 60 * 1000) - window.addEventListener('error', (event) => { - const [a, b, c, d, e] = [1, 2, 3, 4, 5] - console.log(`message: ${a}`) - console.log(`source: ${b}`) - console.log(`lineno: ${c}`) - console.log(`colno: ${d}`) - console.log(`error: ${e}`) - }) +function setLogMethod(should_log_to_file = true) { + let timer_id + if (should_log_to_file) { + console.log = (data, ...optional_param) => { + try { + _log(data, ...optional_param) - console.log = (data, ...optional_param) => { - try { - _log(data, ...optional_param) - - // const error = new Error({ data, ...optional_param }); - const formattedOutput = logger.formateLog(data, ...optional_param) - io.IOLog.saveLogToFile({ log: formattedOutput }, 'log.txt') - } catch (e) { - _warn('error while logging: ') - _warn(e) + // const error = new Error({ data, ...optional_param }); + const formattedOutput = logger.formateLog( + data, + ...optional_param + ) + io.IOLog.saveLogToFile({ log: formattedOutput }, 'log.txt') + } catch (e) { + _warn('error while logging: ') + _warn(e) + } } - } - console.warn = (data, ...optional_param) => { - try { - _warn(data, ...optional_param) - const error = new Error() - const stackTrace = error.stack - const formattedOutput = logger.formateLog(data, ...optional_param) - io.IOLog.saveLogToFile( - { warning: formattedOutput, stackTrace }, - 'log.txt' - ) - } catch (e) { - _warn('error while logging: ') - _warn(e) + console.warn = (data, ...optional_param) => { + try { + _warn(data, ...optional_param) + const error = new Error() + const stackTrace = error.stack + const formattedOutput = logger.formateLog( + data, + ...optional_param + ) + io.IOLog.saveLogToFile( + { warning: formattedOutput, stackTrace }, + 'log.txt' + ) + } catch (e) { + _warn('error while logging: ') + _warn(e) + } } - } - console.error = (data, ...optional_param) => { - try { - _error(data, ...optional_param) - const error = new Error() - const stackTrace = error.stack - const formattedOutput = logger.formateLog(data, ...optional_param) - io.IOLog.saveLogToFile( - { error: formattedOutput, stackTrace }, - 'log.txt' - ) - } catch (e) { - _error('error while logging: ') - _error(e) + console.error = (data, ...optional_param) => { + try { + _error(data, ...optional_param) + const error = new Error() + const stackTrace = error.stack + const formattedOutput = logger.formateLog( + data, + ...optional_param + ) + io.IOLog.saveLogToFile( + { error: formattedOutput, stackTrace }, + 'log.txt' + ) + } catch (e) { + _error('error while logging: ') + _error(e) + } } + } else { + console.log = _log + console.warn = _warn + console.error = _error } } - +setLogMethod(settings_tab_ts.store.data.should_log_to_file) // const ultimate_sd_upscaler_script_test = require('./ultimate_sd_upscaler/dist/main') // const { diff --git a/typescripts/settings/settings.tsx b/typescripts/settings/settings.tsx index bf3fa45..792ae73 100644 --- a/typescripts/settings/settings.tsx +++ b/typescripts/settings/settings.tsx @@ -3,9 +3,11 @@ import ReactDOM from 'react-dom/client' import { observer } from 'mobx-react' import { AStore } from '../main/astore' -import { SpMenu } from '../util/elements' +import { SpCheckBox, SpMenu } from '../util/elements' import Locale from '../locale/locale' import globalStore from '../globalstore' +import { io } from '../util/oldSystem' +import { reaction } from 'mobx' // import { Jimp } from '../util/oldSystem' declare const Jimp: any // make sure you import jimp before importing settings.tsx @@ -33,8 +35,62 @@ const interpolationMethods: InterpolationMethod = { export const store = new AStore({ scale_interpolation_method: interpolationMethods.bilinear, + should_log_to_file: false, + delete_log_file_timer_id: null, }) +function onShouldLogToFileChange(event: any) { + try { + const should_log_to_file: boolean = event.target.checked + store.data.should_log_to_file = should_log_to_file + if (should_log_to_file && !store.data.delete_log_file_timer_id) { + store.data.delete_log_file_timer_id = setDeleteLogTimer() + } else { + //don't log and clear delete file timer + try { + store.data.delete_log_file_timer_id = clearInterval( + store.data.delete_log_file_timer_id + ) + } catch (e) { + console.warn(e) + } + } + //@ts-ignore + setLogMethod(should_log_to_file) + } catch (e) { + console.warn(e) + } +} + +function setDeleteLogTimer() { + const timer_id = setInterval(async () => { + await io.deleteFileIfLargerThan('log.txt', 200) + }, 2 * 60 * 1000) + console.log('setDeleteLogTimer() timer_id :', timer_id) + return timer_id +} +// reaction( +// () => { +// return store.data.should_log_to_file +// }, +// (should_log_to_file) => { +// if (should_log_to_file && !store.data.delete_log_file_timer_id) { +// store.data.delete_log_file_timer_id = setDeleteLogTimer() +// } else { +// //don't log and clear delete file timer +// try { +// store.data.delete_log_file_timer_id = clearInterval( +// store.data.delete_log_file_timer_id +// ) +// } catch (e) { +// console.warn(e) +// } +// } + +// //@ts-ignore +// setLogMethod(should_log_to_file) +// } +// ) const Settings = observer(() => { return (
@@ -67,10 +123,22 @@ const Settings = observer(() => { label_item="select language" selected_index={['en_US', 'zh_CN'].indexOf(globalStore.Locale)} onChange={(id: any, value: any) => { - globalStore.Locale = value.item; - localStorage.setItem('last_selected_locale', value); + globalStore.Locale = value.item + localStorage.setItem('last_selected_locale', value) }} > + + { + //@ts-ignore + Locale('Log Errors To File') + } +
) })