Skip to content

adityadarma/adonis-logger-slack

Repository files navigation

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', 'slack'),
  level: env.get('LOG_LEVEL', 'error'),
  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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published