Logger
Logger module for get info from pushwoosh projects.
Getting Started
Info
message
{
applicationCode: string | undefined,
applicationType: string,
domain: string | undefined,
text: string,
type: string,
code: string | number | undefined,
deviceInfo: string | object,
[key: string]: any
}
Levels
Table of rules when call subscribers:
Config level / Action | Silent | Fatal | Error | Warn | Info | Debug |
---|---|---|---|---|---|---|
fatal | 0 | X | X | X | X | X |
error | 0 | 0 | X | X | X | X |
warn | 0 | 0 | 0 | X | X | X |
info | 0 | 0 | 0 | 0 | X | X |
debug | 0 | 0 | 0 | 0 | 0 | X |
Example Usage
import {Logger} from '@pushwoosh/logger';
const logger = new Logger({
level: 'info'
});
logger.subscribe('fatal', (messsage) => console.log(messsage.text));
logger.subscribe('error', (messsage) => console.log(messsage.text));
logger.subscribe('warn', (messsage) => console.log(messsage.text));
logger.subscribe('info', (messsage) => console.log(messsage.text));
logger.subscribe('debug', (messsage) => console.log(messsage.text));
logger.fatal('Some fatal message', 'FATAL-XXX'); // => Some fatal message
logger.error('Some error message', 'ERROR-XXX'); // => Some error message
logger.warn('Some warn message', 'WARN-XXX'); // => Some warn message
logger.info('Some info message'); // => Some info message
logger.debug('Some debug message'); // none, because level is 'info';
or
import {Logger} from '@pushwoosh/logger';
const logger = new Logger({
level: 'info'
});
logger.fatal('Some fatal message', 'FATAL-XXX', {
handler: (message) => console.log(`${message.code}: ${message.text}`)
});
// => FATAL-XXX: Some fatal message
logger.debug('Some debug message', {
handler: (message) => console.log(message.text)
});
// => // none, because level is 'info';
Installation
Install dependency:
npm install --save @pushwoosh/logger
new Logger([config])
Config 'silent', 'fatal', 'error', 'warn', 'info', 'debug'
default - 'error'
;
level - Usage:
new Logger({level: 'silent'})
'sdk', 'cp'
default 'sdk'
;
applicationType - Usage:
new Logger({
applicationType: 'cp'
})
[]
;
subscribers - array of subscriber default Usage:
new Logger({
subscribers: [{
level: 'debug',
handler: (message) => {
console.log(message);
}
}]
})
API
subscribe(level, (message) => {...})
- add new handler to processing log
Usage:
const logger = new Logger();
logger.subscribe('fatal', (message) => console.log(message.text));
fatal(message, [code], [options])
- emit fatal log
error(message, [code], [options])
- emit error log
warn(message, [options])
- emit warn log
debug(message, [options])
- emit debug log
info(message, [options])
- emit info log
Usage:
import {Logger} from '@pushwoosh/logger';
const logger = new Logger({level: 'info'});
logger.subscribe('error', (message) => {
console.log(message);
});
logger.fatal('Some error message', 'fatal-XXX');
// => FATAL-XXX: Some fatal message
logger.fatal('Some error message', 'fatal-XXX', {
handler: (message) => console.log(message.someKey),
someKey: 'someValue'
});
// => FATAL-XXX: Some fatal message
// => someValue
updateApplicationCode(code)
- update applicationCode
import {Logger} from '@pushwoosh/logger';
const logger = new Logger();
logger.updateApplicationCode('XXXXX-XXXXX');
logger.subscribe('fatal', (message) => console.log(message));
logger.fatal('Some fatal message', 'FATAL-XXX');
// =>
// {
// applicationCode: 'XXXXX-XXXXX',
// applicationType: 'sdk',
// text: 'Some fatal message,
// code: 'FATAL-XXX'
// };
updateDomain(domain)
- update domain
import {Logger} from '@pushwoosh/logger';
const logger = new Logger();
logger.updateDomain('https://localhost');
logger.subscribe('fatal', (message) => console.log(message));
logger.fatal('Some fatal message', 'FATAL-XXX');
// =>
// {
// domain: 'https://localhost',
// applicationType: 'sdk',
// text: 'Some fatal message,
// code: 'FATAL-XXX'
// };
updateApplicationType(type)
- update applicationType
import {Logger} from '@pushwoosh/logger';
const logger = new Logger();
logger.updateApplicationType('cp');
logger.subscribe('fatal', (message) => console.log(message));
logger.fatal('Some fatal message', 'FATAL-XXX');
// =>
// {
// applicationType: 'cp',
// text: 'Some fatal message,
// code: 'FATAL-XXX'
// };
updateLogLevel(type)
- update applicationType
import {Logger} from '@pushwoosh/logger';
const logger = new Logger();
logger.subscribe('debug', (message) => console.log(message));
logger.debug('Some fatal message');
// => nothing
logger.updateLogLevel('debug');
logger.debug('Some fatal message');
// =>
// {
// applicationType: 'sdk',
// text: 'Some debug message,
// };
updateDeviceInfo(type)
- update applicationType
import {Logger} from '@pushwoosh/logger';
const logger = new Logger();
logger.updateDeviceInfo({key: 'value'});
logger.subscribe('fatal', (message) => console.log(message));
logger.fatal('Some fatal message', 'FATAL-XXX');
// =>
// {
// applicationType: 'cp',
// text: 'Some fatal message,
// code: 'FATAL-XXX',
// deviceInfo: {key: 'value'}
// };
License
MIT