@simplyhexagonal/logger-transport-discord
v3.1.2
Published
This is a transport which allows @simplyhexagonal/logger to use Discord as a communication channel
Downloads
549
Readme
Discord transport for Simply Hexagonal Logger
This is a transport which allows @simplyhexagonal/logger to use Discord as a communication channel.
Open source notice
This project is open to updates by its users, I ensure that PRs are relevant to the community. In other words, if you find a bug or want a new feature, please help us by becoming one of the contributors ✌️ ! See the contributing section
Like this module? ❤
Please consider:
- Buying me a coffee ☕
- Supporting Simply Hexagonal on Open Collective 🏆
- Starring this repo on Github 🌟
Usage
require('dotenv').config();
import os from 'os';
import Logger, {
LoggerTransportName,
LoggerTransportResult,
} from '@simplyhexagonal/logger';
import DiscordTransport from '@simplyhexagonal/logger-transport-discord';
const discordDefault = {
transport: LoggerTransportName.DISCORD,
options: {
destination: (process.env.DISCORD_WEBHOOK || ''),
},
};
const discordError = {
transport: LoggerTransportName.DISCORD,
options: {
destination: (process.env.DISCORD_ERROR_WEBHOOK || ''),
},
};
const logger = new Logger({
optionsByLevel: {
warn: [discordDefault],
info: [discordDefault],
debug: [discordDefault],
error: [discordError],
fatal: [discordError],
all: [discordDefault],
raw: [discordDefault],
},
singleton: false,
transports: {
[`${LoggerTransportName.DISCORD}`]: DiscordTransport,
},
appIdentifiers: {
region: 'us-east-1',
clusterType: 'KUBERNETES',
cluster: 'MyCluster',
hostname: os.hostname(),
app: 'my-app',
},
catchTransportErrors: true,
});
For more info about configuration options go to @simplyhexagonal/logger on Github.
Discord Max Character Count
Currently Discord's Webhook API caps the content length at 2000 characters.
If your log content with a higher character count, this transport splits the message in two, sending first the app identity, timestamp and log level, then sending the message contents as a plain-text attachment. Similar to pasting a large message on Discord and selecting to send a file instead.
Contributing
Yes, thank you! This plugin is community-driven, most of its features are from different authors.
Please update the docs and tests and add your name to the package.json
file.
Contributors ✨
Thanks goes to these wonderful people (emoji key):
License
Copyright (c) 2021-Present Logger Contributors. Licensed under the Apache License 2.0.