3.1.2 • Published 2 years ago

@simplyhexagonal/logger-transport-discord v3.1.2

Weekly downloads
-
License
Apache-2.0
Repository
-
Last release
2 years ago

Discord transport for Simply Hexagonal Logger

Tests Try logger on RunKit

This is a transport which allows @simplyhexagonal/logger to use Discord as a communication channel.

image depicting four automated messages sent by simplyhexagonal/logger and received by discord

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:

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.

image depicting an automated message containing a long error JSON that was sent as a file

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.

3.1.2

2 years ago

3.1.1

2 years ago

3.1.0

2 years ago

3.0.0

2 years ago

1.2.0

2 years ago

2.0.1

2 years ago

2.0.0

2 years ago

1.1.0

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago