2020-09-08 07:53:42 +00:00
|
|
|
import { formatLog } from './loghelper.mjs'
|
2022-03-29 10:25:25 +00:00
|
|
|
import { getStatus, safeWrap } from '../util.mjs'
|
2020-09-08 07:53:42 +00:00
|
|
|
|
2022-03-29 10:25:25 +00:00
|
|
|
export default function coremonitor(io, ctx) {
|
|
|
|
|
|
|
|
ctx.core.applications.forEach(function(app) {
|
|
|
|
app.on('updating', safeWrap(ctx.log, `${app.name}.on('updating')`, function() {
|
|
|
|
io.emit('core.status', getStatus(ctx))
|
|
|
|
}))
|
|
|
|
app.on('running', safeWrap(ctx.log, `${app.name}.on('updating')`, function() {
|
|
|
|
io.emit('core.status', getStatus(ctx))
|
|
|
|
}))
|
|
|
|
|
|
|
|
app.on('updatelog', safeWrap(ctx.log, `${app.name}.on('updatelog')`, function(loglines) {
|
|
|
|
io.to(`app.${app.name}`).emit('app.updatelog', {
|
|
|
|
name: app.name,
|
|
|
|
log: loglines,
|
|
|
|
})
|
|
|
|
}))
|
|
|
|
|
|
|
|
if (app.name !== ctx.app.name) {
|
|
|
|
app.ctx.log.on('newlog', safeWrap(ctx.log, `${app.name}.log.on('newlog')`, function(data) {
|
|
|
|
io.to('logger.' + app.name).emit('newlog', formatLog(data))
|
|
|
|
}))
|
|
|
|
}
|
|
|
|
})
|
|
|
|
|
|
|
|
ctx.core.log.on('newlog', safeWrap(ctx.log, `core.log.on('newlog')`, function(data) {
|
|
|
|
io.to('logger.service-core').emit('newlog', formatLog(data))
|
|
|
|
}))
|
|
|
|
|
|
|
|
ctx.log.on('newlog', safeWrap(ctx.log, 'coremonitor.on.newlog', function(data) {
|
|
|
|
// Stop infinite regression
|
|
|
|
if (data?.err?.signal === 'newlogerror') return
|
|
|
|
try {
|
|
|
|
io.to('logger.' + ctx.app.name).emit('newlog', formatLog(data))
|
|
|
|
} catch (err) {
|
|
|
|
err.signal = 'newlogerror'
|
|
|
|
throw err
|
|
|
|
}
|
|
|
|
}))
|
|
|
|
|
|
|
|
/*
|
2020-09-08 07:53:42 +00:00
|
|
|
log.on('newlog', safeWrap(log, 'coremonitor.on.newlog', function(data) {
|
|
|
|
io.to('logger').emit('newlog', formatLog(data))
|
|
|
|
}))
|
|
|
|
core.on('dbupdated', safeWrap(log, 'coremonitor.on.dbupdated', function() {
|
|
|
|
io.to('core').emit('core.db', db.get('core').value())
|
|
|
|
}))
|
|
|
|
core.on('statusupdated', safeWrap(log, 'coremonitor.on.statusupdated', function() {
|
|
|
|
io.to('core').emit('core.status', core.status())
|
|
|
|
}))
|
|
|
|
core.on('applog', safeWrap(log, 'coremonitor.on.applog', function(app) {
|
|
|
|
io.to('core.app').emit('core.program.log', {
|
|
|
|
name: 'app',
|
|
|
|
logs: app.logs,
|
|
|
|
})
|
|
|
|
}))
|
2020-09-09 16:44:29 +00:00
|
|
|
core.on('managelog', safeWrap(log, 'coremonitor.on.managelog', function(manage) {
|
|
|
|
io.to('core.manage').emit('core.program.log', {
|
|
|
|
name: 'manage',
|
|
|
|
logs: manage.logs,
|
|
|
|
})
|
2022-03-29 10:25:25 +00:00
|
|
|
}))*/
|
|
|
|
}
|