1.1.0 • Published 10 months ago

@adityadarma/adonis-logger-slack v1.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

Adonis Slack for Logger

gh-workflow-image npm-image npm-downloads license-image

Adonis Slack Logger is a feature that allows developers to store application logger to slack. This feature provides a structured and organized approach to managing application logs, making it easier to query and analyze them.

Installation

node ace add @adityadarma/adonis-logger-slack

Usage

Capturing Errors

You can capture errors by calling the sendException method on the instance of slack inside your exception handler.

export default class HttpExceptionHandler extends ExceptionHandler {
  // ...

  async report(error: unknown, ctx: HttpContext) {
    if (this.shouldReport(error as any)) {
      ctx?.slack?.sendException(error)
    }

    return super.report(error, ctx)
  }
}

Adding Integrations

Logger provides multiple integrations to enhance the data captured by driver. You can add integrations by changing the config inside the configuration config/logger.ts.

// config/logger.ts

slack: {
  enabled: true,
  name: env.get('APP_NAME'),
  level: env.get('LOG_LEVEL'),
  icon: 'boom',
  url: env.get('LOG_SLACK_WEBHOOK_URL'),
  redact: {
    paths: ['password', '*.password']
  }
  transport: {
    targets: targets()
    .pushIf(!app.inProduction, targets.pretty())
    .pushIf(app.inProduction, targets.file({ destination: 1 }))
    // Optional to send log anyware
    .push({
      target: '@youngkiu/pino-slack-webhook',
      level: 'info',
      options: {
        webhookUrl: env.get('LOG_SLACK_WEBHOOK_URL'),
        channel: '#error_notifications',
        username: 'webhookbot',
        icon_emoji: ':ghost:'
      }
    })
    .toArray()
  }
},

*Note: please install @youngkiu/pino-slack-webhook if you want send slack anyware

Create log anyware

via service

import logger from '@adonisjs/core/services/logger'

router.get('/logger', async () => {
  logger.info('dfdgdg')
  ......
})

via HttpContext

router.get('/logger', async ({logger}: HttpContext) => {
  logger.info('dfdgdg')
  .....
})

License

Adonis Datatables is open-sourced software licensed under the MIT license.

1.1.0

10 months ago

1.0.3

10 months ago

1.0.2

11 months ago

1.0.1

11 months ago

1.0.0

12 months ago

0.0.2

12 months ago

0.0.1

12 months ago