UNPKG

@kevit/log4js-hangout

Version:
81 lines (69 loc) 2.62 kB
Log4js Node Hangout Appender -------------------------------- Sends log events to a hangout room or group. This is an appender for use with log4js. ## Instructions: ## Install the package: ``` npm i @kevit/log4js-hangout ``` ## Configuration * `type` - `@kevit/log4js-hangout` * `webhookURL` - Your hangout incoming webhhok URL or provide `token,space and key` * `token` - `string` - your Hangout Incoming webhook token * `space` - `string` - the room or group to send log messages * `key` - `string` - your Hangout Incoming webhook key * `layout` - `object` (optional, defaults to `patternLayout` with pattern ``` `%p` %c%n%m ```) - the layout to use for the message (see [layouts](https://log4js-node.github.io/log4js-node/layouts.html)). ## Example ```javascript log4js.configure({ appenders: { hangoutAlert: { type: '@kevit/log4js-hangout', space: '****', key:'****', token:'****' } }, categories: {default: {appenders: ['hangoutAlert'], level: 'warn'}} }); ``` Without webhookUrl ####With webhook url ```javascript log4js.configure({ appenders: { hangoutAlert: { type: '@kevit/log4js-hangout', webhookUrl: 'https://chat.googleapis.com/v1/spaces/*****/messages?key=*****&token=***' } }, categories: {default: {appenders: ['hangoutAlert'], level: 'warn'}} }); ``` This configuration will send all warn (and above) messages to the respective hangout room. ####With multiple appenders ```javascript log4js.configure({ appenders: { out: {type: 'stdout'}, allLogs: {type: 'file', filename: 'all.log', maxLogSize: 10485760, backups: 10, compress: true}, outFilter: { type: 'logLevelFilter', appender: 'out', level: process.env.LOG_LEVEL || 'all' }, hangout: { type: '@kevit/log4js-hangout', webhookUrl: 'https://chat.googleapis.com/v1/spaces/*****/messages?key=*****&token=***' }, hangoutFilter: { type: 'logLevelFilter', appender: 'hangout', level: process.env.ALERT_LOG_LEVEL || 'warn' } }, categories: { default: {appenders: ['allLogs','outFilter', 'hangoutFilter']} } }); ``` This configuration displays use of multiple appenders. - `outFilter`: Push log in **stdout** with filter `LOG_LEVEL` set in environment, if not set then `all` levels - `hangoutFilter`: Push log in **hangout-webhook** with filter `ALERT_LOG_LEVEL` set in environment, if not set then `warn` levels For more configuration, see [log4js](https://log4js-node.github.io/log4js-node)