@adityadarma/adonis-logger-slack
v1.1.2
Published
Package logger to slack for AdonisJS
Downloads
478
Readme
Adonis Slack for Logger
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.