ano-mr-site/lib/js/logger.js

49 lines
1.4 KiB
JavaScript

/**
* @returns {string}
*/
const getCurrentTime = () => {
const date = new Date()
return '' +
String(date.getFullYear()) + '.' +
String(date.getMonth()+1).padStart(2, '0') + '.' +
String(date.getDate()).padStart(2, '0') + ' ' +
String(date.getHours() + 5).padStart(2, '0') + ':' +
String(date.getMinutes()).padStart(2, '0') + ':' +
String(date.getSeconds()).padStart(2, '0')
}
/**
* @typedef {Object} Logger
* @property {(msg: string) => void} print
* @property {(wmsg: string) => void} wprint
* @property {(emsg: string) => void} eprint
* @property {(msg: string) => void} save
*/
/** @type {Logger} */
const logger = {
saved: [],
errors: [],
warnings: [],
logs: [],
/** @param {string} msg */
print: (msg) => {
const msg_format = `${getCurrentTime()} : Log : ${msg}`
logger.logs.push(msg_format);
console.log(msg_format)
},
/** @param {string} wmsg */
wprint: (wmsg) => {
const msg_format = `${getCurrentTime()} : Warning : ${wmsg}`
logger.warnings.push(msg_format);
console.log(msg_format)
},
/** @param {string} emsg */
eprint: (emsg) => {
const msg_format = `${getCurrentTime()} : Error : ${emsg}`
logger.errors.push(msg_format);
console.log(msg_format)
},
/** @param {string} msg */
save: (msg) => logger.saved.push(`${getCurrentTime()} : Data : ${msg}`),
}