telogger
v1.0.11
Published
Log information to Telegram.
Downloads
8
Maintainers
Readme
Telogger
Telogger can help you log information to Telegram.
Installation
npm i telogger
Usage
const { Telogger } = require('telogger')
// import { Telogger } from 'telogger'
Basic Setup
const telogger = new Telogger('AppTitle', 'BotToken', 'ID')
telogger.dump([ ], { }, 'string', 1234567890)
telogger.trace('started testing telogger')
telogger.debug('third telogger message')
telogger.info('*Telogger* supports _markdown_.')
telogger.warn('*Four* messages sent __in a row__.')
telogger.error('Unfortunately, errors are inevitable.')
telogger.fatal('Something really bad happened. Goodbye!'
You can pass Error
to Telogger as well:
try {
// db.connect()
} catch(error) {
// telogger.error(error)
// or
// telogger.error('Connecting to database failed.', error)
// or
telogger.error(new Error('Connecting to database failed.', { cause: error }))
}
Advanced Setups
You can assign different channels for different types of logs.
const telogger = new Telogger('AppTitle', 'BotToken', {
dev: 'DevChannelID', // for `dump`, `trace`, and `debug`
log: { id: 'LogChannelID', silent: true }, // for `info`
err: 'ErrChannelID' // for `warn`, `error`, and `fatal`
})
You can also create your own channels and log levels.
const telogger = new Telogger('AppTitle', 'BotToken', {
mychannel: {
id: 'MyChannelID',
silent: false,
sendInProduction: true
}
}, {
dump: { to: 'MyID' },
info: { to: 'MyID' },
warn: { to: 'MyID' },
myloglevel: {
to: 'mychannel',
icon: '🍑',
head: '{{text}}',
body: [ '{{rich}}', '{{location}}' ]
}
})
telogger.send('myloglevel', 'Head Text', 'Body Rich Text')
Below is a list of the defined methods for your log levels.
telogger.silly()
telogger.test()
telogger.laconic()
telogger.verbose()
telogger.database()
telogger.security()
telogger.network()
telogger.performance()
telogger.request()
telogger.response()
telogger.success()
telogger.failure()
telogger.notice()
telogger.warning()
telogger.alert()
telogger.crit()
telogger.critical()
telogger.emerg()
telogger.emergency()
Docs
Constructor
At least one of parameters 3 and 4 must not be null
.
| № | Type | Value | Required |
| --- | --- | --- | --- |
| 1 | String\|Null
| App title | Optional |
| 2 | String
| Bot token | Yes |
| 3 | Number\|String\|Object\|Null
| ID, username, or channels
| Optional |
| 4 | Number\|String\|Object\|Null
| ID, username, alias, or destinations
| Optional |
Channels
| Key | Type | Value |
| --- | --- | --- |
| [ Alias ] | Number\|String\|Object
| ID, username, or channel
|
Channel
| Key | Type | Value |
| --- | --- | --- |
| id | Number\|String
| ID or username |
| silent | Boolean
| send logs silently |
| sendInProduction | Boolean
| send logs in production mode |
Destinations
| Key | Type | Value |
| --- | --- | --- |
| [ Log Level ] | String
| ID, username, alias, or destination
|
Destination
| Key | Type | Value |
| --- | --- | --- |
| to | Number\|String
| ID, username, or alias |
| icon | String\|False
| False
to disable icon |
| head | Template\|Array\|False
| False
to disable head |
| body | Template\|Array\|False
| False
to disable body |
| silent | Boolean
| send logs silently |
| sendInProduction | Boolean
| send logs in production mode |
Templates
Use {{keyword}}
in your templates to format messages. Below is a list of supported keywords.
| Keyword | Input | Output |
| --- | --- | --- |
| bold | bold | bold |
| italic | italic | italic |
| underline | underline | underline |
| strikethrough | strikethrough | ~~strikethrough~~ |
| spoiler | spoiler | spoilerspoiler |
| blockquote | blockquote | > blockquote |
| blockquote(1) | expandable blockquote | > expandable blockquote |
| code | code | code
|
| pre | pre | pre
|
| text | text | text |
| rich | *_text_* | text |
| json | [ 'text' ] | [ "text" ] |
| json(0) | [ 'text' ] | ["text"] |
| location | | /src/file.js:8:16
|
| location(0) | | /src/file.js:8:16
|
| location(1-2) | | /src/file.js:4:4 /src/file.js:3:3
|
| location(3+) | | /src/file.js:2:2 /src/file.js:1:1
|
You can also combine several keywords in your templates ({{code > location}}
) and use optional blocks ({{text}?}
).
Contributing
Contributions are only allowed in TON:
UQCYqT9-ycmXE3o57Cac1sM5ntIKdjqIwP3kzWmiZik0VU_b