log4js-meili-appender

1.1.3 • Public • Published

log4js meili appender

use in koa

import log4js from 'koa-log4';

// filter setup
app.use(log4js.koaLogger(log4js.getLogger('meili'), {
  format: function(ctx, func) {
    return func(`{
      "userId": ":user-id",
      "userType": 2,
      "userNick": ":user-nick",
      "traceId": ":trace-id",
      "objectIds": "",
      "objectType": "",
      "operateType": "",
      "beforeData": "",
      "afterData": "",
      "remarks": "",
      "userIp": ":user-ip",
      "userAgent": ":user-agent",
      "referer": ":referrer",
      "url": ":url",
      "uri": ":uri",
      "serverIp": ":server-ip",
      "method": ":method",
      "requestParams": ":requestParams"
    }`);
  },
  level: 'auto',
  nolog: '\\.(gif|jpe?g|png)$',
  tokens: [
    // 其他信息
    { token: ':requestParams', content: (ctx) => {
      let content = {};
      if (ctx.method === 'GET') {
        content = ctx.query;
      } else {
        content = ctx.request.body;
      }
      return JSON.stringify(content).replace(/"/g, '\\"');
    } },
    { token: ':user-id', content: (ctx) => { return ctx.state.userInfo.work_id || ''; } },
    { token: ':user-nick', content: (ctx) => { return ctx.state.userInfo.nick_name || ''; } },
    { token: ':user-ip', content: (ctx) => { return ctx.ip; } },
    { token: ':uri', content: (ctx) => { return ctx.path; } },
    { token: ':method', content: (ctx) => { return ctx.method; } },
    { token: ':server-ip', replacement: ip.address() },
    { token: ':trace-id', content: (ctx) => { return ctx.state.request_id || ''; } },
  ],
}));

// appender setup
// get appName and secretKey from
// http://crm.mogujie.org/actionlog/admin/index
// @see http://gitlab.mogujie.org/yefei/action-log
let appName = '******';
let secretKey = '******';
log4js.configure({
  appenders: [
    {
      type: 'log4js-meili-appender',
      category: 'meili',
      appName,
      secretKey,
    },
  ],
});

Readme

Keywords

none

Package Sidebar

Install

npm i log4js-meili-appender

Weekly Downloads

2

Version

1.1.3

License

ISC

Unpacked Size

5.51 kB

Total Files

5

Last publish

Collaborators

  • wuwenbin