1.1.8 • Published 5 years ago
cluster-ipc-logger v1.1.8
cluster-ipc-logger
This logger is designed to collect logs from cluster workers, child processes even independent node.js processes through IPC (Inter-Process Communication).
Preview
Installation
npm i cluster-ipc-logger
Usage
import { loggerServer, loggerClient } from 'cluster-ipc-logger';
import * as cluster from 'cluster';
if (cluster.isMaster) /* master */ {
// logger master
const logger = new loggerServer({
debug: true,
directory: './logs',
saveInterval: 60000 // 1 minute
});
// logger for master
const log = new loggerClient({
system: 'master',
cluster: 0
})
// log listeners
logger
.on('fatal', (msg) => {
// on fatal logs
})
.on('error', (msg) => {
// on error logs
})
.on('all', (msg) => {
// on all logs
});
// detect ^c and save logs before exiting
process.on('SIGINT', () => {
logger.save().then(() => {
process.exit();
}).catch((err) => {
throw err;
});
});
// fork workers
for (let i = 6; i--;) {
cluster.fork({ workerId: i });
log.info(`forking worker ${i}`);
}
log.debug('debug logs only show up when debug option is set to true');
log.info('every severity of logs will be save to local storage');
log.warn('when an error or fatal log occured,');
log.error('the log content is also saved to another file with prefix [error],');
log.error('so it is easier to examine the major flaws');
} else /* worker */ {
// logger for worker
const log = new loggerClient({
system: 'worker',
cluster: process.env.workerId
});
log.debug(`worker ${process.env.workerId} standing by`);
}
JSON
//log json
log.info({
eBooks: [
{
language: 'Pascal',
edition: 'third'
},
{
language: 'Python',
edition: 'four'
},
{
language: 'SQL',
edition: 'second'
}
]
});
Note
loggerClient
will catch unhandledRejection
& uncaughtException
and log it as fatal. After sending it to loggerMaster
it will automatically kill the client process with process.exit()
(as it should be).
1.1.8
5 years ago
1.1.7
5 years ago
1.1.6
5 years ago
1.1.5
5 years ago
1.1.4
5 years ago
1.1.3
5 years ago
1.1.2
5 years ago
1.1.1
5 years ago
1.1.0
5 years ago
1.0.9
5 years ago
1.0.8
5 years ago
1.0.7
5 years ago
1.0.6
5 years ago
1.0.5
5 years ago
1.0.4
5 years ago
1.0.3
5 years ago
1.0.2
5 years ago
1.0.1
5 years ago
1.0.0
5 years ago