log4js-server-chan
Version:
log4js server chan appender
38 lines (30 loc) • 940 B
JavaScript
const layouts = require('log4js').layouts;
const got = require('got');
const urlencode = require('urlencode');
let layout, sckey, text;
let serverChanAppender = (_config, _layout) => {
layout = _layout || layouts.basicLayout;
sckey = sckey || _config.sckey;
text = text || _config.text;
return (loggingEvent) => {
let desp = layout(loggingEvent, _config.timezoneOffset);
desp = urlencode(desp);
text = urlencode(text);
let url = 'http://sc.ftqq.com/'+ sckey + '.send?text=' + text + '&desp=' + desp;
got(url).catch((err) => {
throw err;
});
}
};
let configure = (_config) => {
if (_config.layout) {
layout = layouts.layout(_config.layout.type, _config.layout);
}
text = _config.text;
sckey = _config.sckey;
return serverChanAppender(_config, layout);
};
exports.name = 'log4js-server-chan';
exports.appender = serverChanAppender;
exports.configure = configure;