https://github.com/simplyhexagonal/logger-transport-discord
This is a transport which allows @simplyhexagonal/logger to use Discord as a communication channel
https://github.com/simplyhexagonal/logger-transport-discord
Last synced: 10 months ago
JSON representation
This is a transport which allows @simplyhexagonal/logger to use Discord as a communication channel
- Host: GitHub
- URL: https://github.com/simplyhexagonal/logger-transport-discord
- Owner: simplyhexagonal
- License: mit
- Created: 2021-10-15T17:19:01.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2022-01-16T03:14:41.000Z (over 4 years ago)
- Last Synced: 2025-08-18T12:36:44.857Z (10 months ago)
- Language: TypeScript
- Size: 922 KB
- Stars: 0
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Discord transport for Simply Hexagonal Logger

[](https://npm.runkit.com/@simplyhexagonal/logger)
This is a transport which allows [@simplyhexagonal/logger](https://github.com/simplyhexagonal/logger) to use Discord as a communication channel.

## Open source notice
This project is open to updates by its users, [I](https://github.com/jeanlescure) 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](#contributors-) ✌️ ! See the [contributing section](#contributing)
## Like this module? ❤
Please consider:
- [Buying me a coffee](https://www.buymeacoffee.com/jeanlescure) ☕
- Supporting Simply Hexagonal on [Open Collective](https://opencollective.com/simplyhexagonal) 🏆
- Starring this repo on [Github](https://github.com/simplyhexagonal/logger-transport-discord) 🌟
## Usage
```ts
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](https://github.com/simplyhexagonal/logger).
## 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](https://allcontributors.org/docs/en/emoji-key)):

Jean Lescure
🚧 💻 📓 ⚠️ 💡 📖

Alejandro Merino
🚧 💻 📓 ⚠️
## License
Copyright (c) 2021-Present [Logger Contributors](https://github.com/simplyhexagonal/logger-transport-discord/#contributors-).
Licensed under the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0).