init report && move live_monitor_vue
This commit is contained in:
113
repo/3-class-complex-assistants/src/Logger.ts
Normal file
113
repo/3-class-complex-assistants/src/Logger.ts
Normal file
@@ -0,0 +1,113 @@
|
||||
interface LoggerParams {
|
||||
loggerLevel: number;
|
||||
serviceName?: string;
|
||||
machineAddr?: string;
|
||||
port?: number;
|
||||
dateTime?: Date;
|
||||
callFunc: (text: string) => void;
|
||||
isPushToServer: boolean;
|
||||
}
|
||||
|
||||
const defaultParams = {
|
||||
loggerLevel: -1,
|
||||
serviceName: '',
|
||||
machineAddr: '',
|
||||
port: 80,
|
||||
dateTime: new Date(),
|
||||
callFunc: (text: string) => console.log(text),
|
||||
isPushToServer: false
|
||||
}
|
||||
|
||||
const mergeParams = (mainObject = {}, defaultParams: LoggerParams ): LoggerParams => {
|
||||
return {...defaultParams, ...mainObject}
|
||||
}
|
||||
|
||||
class Logger {
|
||||
private readonly loggerLevel: number;
|
||||
private serviceName: string | undefined;
|
||||
private machineAddr: string | undefined;
|
||||
private port: number | undefined;
|
||||
private dateTime: Date | undefined;
|
||||
private readonly callFunc: ((text: string) => void) | undefined;
|
||||
private readonly isPushToServer: boolean | undefined;
|
||||
|
||||
|
||||
|
||||
constructor(params: LoggerParams) {
|
||||
const parsedParams = mergeParams(params, defaultParams)
|
||||
this.loggerLevel = parsedParams.loggerLevel
|
||||
this.serviceName = parsedParams.serviceName
|
||||
this.machineAddr = parsedParams.machineAddr
|
||||
this.port = parsedParams.port
|
||||
this.dateTime = parsedParams.dateTime
|
||||
this.callFunc = parsedParams.callFunc
|
||||
this.isPushToServer = parsedParams.isPushToServer
|
||||
}
|
||||
|
||||
debug(text: string, level: number) {
|
||||
if(!text && !level && !this.isPushToServer) return
|
||||
/* Отправляем инфу на сервер
|
||||
const data = {serviceInfo: this.params, text: text, level: level}
|
||||
axios.post(url, data)
|
||||
.then((res) => {
|
||||
return res
|
||||
})
|
||||
.catch((err) => {
|
||||
return err
|
||||
})
|
||||
... */
|
||||
if (this.loggerLevel > level) {
|
||||
return this.callFunc ? this.callFunc(text) : 'Отладочная информация отправлена на сервер'
|
||||
}
|
||||
}
|
||||
info(text: string, level: number) {
|
||||
if(!text && !level && !this.isPushToServer) return
|
||||
/* Отправляем инфу на сервер
|
||||
const data = {serviceInfo: this.params, text: text, level: level}
|
||||
axios.post(url, data)
|
||||
.then((res) => {
|
||||
return res
|
||||
})
|
||||
.catch((err) => {
|
||||
return err
|
||||
})
|
||||
... */
|
||||
if (this.loggerLevel > level) {
|
||||
return this.callFunc ? this.callFunc(text) : 'Информация отправлена на сервер'
|
||||
}
|
||||
}
|
||||
warn(text: string, level: number) {
|
||||
if(!text && !level && !this.isPushToServer) return
|
||||
/* Отправляем инфу на сервер
|
||||
const data = {serviceInfo: this.params, text: text, level: level}
|
||||
axios.post(url, data)
|
||||
.then((res) => {
|
||||
return res
|
||||
})
|
||||
.catch((err) => {
|
||||
return err
|
||||
})
|
||||
... */
|
||||
if (this.loggerLevel > level) {
|
||||
return this.callFunc ? this.callFunc(text) : 'Предупреждение отправлено на сервер'
|
||||
}
|
||||
}
|
||||
error(text: string, level: number) {
|
||||
if(!text && !level && !this.isPushToServer) return
|
||||
/* Отправляем инфу на сервер
|
||||
const data = {serviceInfo: this.params, text: text, level: level}
|
||||
axios.post(url, data)
|
||||
.then((res) => {
|
||||
return res
|
||||
})
|
||||
.catch((err) => {
|
||||
return err
|
||||
})
|
||||
... */
|
||||
if (this.loggerLevel > level) {
|
||||
return this.callFunc ? this.callFunc(text) : 'Ошибка отправлена на сервер'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default Logger
|
||||
5
repo/3-class-complex-assistants/src/index.ts
Normal file
5
repo/3-class-complex-assistants/src/index.ts
Normal file
@@ -0,0 +1,5 @@
|
||||
import Logger from './Logger'
|
||||
|
||||
export {
|
||||
Logger
|
||||
}
|
||||
Reference in New Issue
Block a user