|
| 1 | +const { Logtail } = require('@logtail/node') |
| 2 | + |
1 | 3 | function _logConfigFactory (options = {}, { axios, deepmerge, loggerOptions, envVariables }) {
|
2 | 4 | options = deepmerge(loggerOptions.previousOptions, options)
|
3 | 5 | loggerOptions.previousOptions = options
|
@@ -48,16 +50,21 @@ function _logConfigFactory (options = {}, { axios, deepmerge, loggerOptions, env
|
48 | 50 | options.betterstack.url = options.betterstack.url || envVariables.BETTERSTACK_URL
|
49 | 51 | options.betterstack.token = options.betterstack.token || envVariables.BETTERSTACK_TOKEN
|
50 | 52 |
|
| 53 | + const logtail = new Logtail(options.betterstack.token, { |
| 54 | + endpoint: options.betterstack.url |
| 55 | + }) |
| 56 | + |
51 | 57 | loggerOptions.betterstackLogger = {
|
52 |
| - log: async msg => { |
| 58 | + log: async (level, msg) => { |
53 | 59 | const betterstackUrl = new URL(options.betterstack.url)
|
54 | 60 | if (!betterstackUrl.hostname.endsWith('betterstackdata.com')) {
|
55 | 61 | throw new Error('Invalid Betterstack URL, must end with betterstackdata.com')
|
56 | 62 | }
|
57 | 63 | if (!betterstackUrl.protocol === 'https:') {
|
58 | 64 | throw new Error('Invalid Betterstack URL, must use HTTPS')
|
59 | 65 | }
|
60 |
| - await axios.post(options.betterstack.url, msg, { headers: { Authorization: `Bearer ${options.betterstack.token}` } }) |
| 66 | + if (['silly', 'verbose'].includes(level)) level = 'debug' // Betterstack does not support silly level |
| 67 | + logtail[level](msg) // Log to Betterstack with package to get batching and retry logic, and colors! (må vi ha await??) |
61 | 68 | }
|
62 | 69 | }
|
63 | 70 |
|
|
0 commit comments