Ein Sumor Cloud Tool.
Weitere Dokumentation
Dies ist ein schlanker Logger für Node.JS. Er kann Logs in verschiedenen Ebenen ausgeben und Sie können den Bereich, die ID und die Zeitzone anpassen.
npm i @sumor/logger --save
Erfordert Node.JS Version 16.x oder höher
Da dieses Paket in ES-Modul geschrieben ist,
ändern Sie bitte den folgenden Code in Ihrer package.json
Datei:
{
"type": "module"
}
import Logger from '@sumor/logger'
const logger = new Logger()
logger.trace('Hallo Welt!')
// Sie sehen folgende Ausgabe:
// 2020-01-01 00:00:00.000 TRACE MAIN - Hallo Welt!
In manchen Fällen müssen wir Logs kategorisieren. scope
wird für diesen Zweck verwendet.
import Logger from '@sumor/logger'
const logger = new Logger({
scope: 'DEMO'
})
logger.trace('Hallo Welt!')
// Sie sehen folgende Ausgabe:
// 2020-01-01 00:00:00.000 TRACE DEMO - Hallo Welt!
In manchen Fällen benötigen wir Benutzerkennungen. id
wird für diesen Zweck verwendet.
import Logger from '@sumor/logger'
const logger = new Logger({
id: 'USER001'
})
logger.trace('Hallo Welt!')
// Sie sehen folgende Ausgabe:
// 2020-01-01 00:00:00.000 TRACE MAIN USER001 - Hallo Welt!
Meistens müssen wir Logs nur auf einer bestimmten Ebene ausgeben. Dann können wir entscheiden, ob wir sie speichern und anzeigen oder nicht.
import Logger from '@sumor/logger'
const logger = new Logger()
logger.trace('Hallo Welt!') // trace ist die niedrigste Ebene, alle Logs werden ausgegeben
logger.debug('Hallo Welt!')
logger.info('Hallo Welt!')
logger.warn('Hallo Welt!')
logger.error('Hallo Welt!')
logger.fatal('Hallo Welt!') // fatal ist die höchste Ebene, nur kritische Fehler werden ausgegeben
import Logger from '@sumor/logger'
const logger1 = new Logger({
offset: 2 * 60 // UTC+2 Offset beträgt 2 Stunden
})
logger1.info('Hallo Welt!')
// Sie sehen folgende Ausgabe:
// 2020-01-01 02:00:00.000 INFO MAIN - Hallo Welt!
const logger2 = new Logger({
offset: 8 * 60 // UTC+8 Offset ist 8 Stunden
})
logger2.info('Hallo Welt!')
// Sie sehen folgende Ausgabe:
// 2020-01-01 08:00:00.000 INFO MAIN - Hallo Welt!
import Logger from '@sumor/logger'
const code = {
trace: {
HTTP_ACCESS: 'Der Benutzer greift über HTTP zu und die IP-Adresse lautet {ip}'
},
debug: {
USER_TOKEN_LOADED:
'Die Benutzeranmeldeinformationen werden gelesen und die Benutzer-ID lautet {id}'
},
info: {
USER_LOGIN: 'Der Benutzer loggt sich ein und die Benutzer-ID lautet {id}'
},
warn: {
USER_LOGOUT: 'Der Benutzer loggt sich aus und die Benutzer-ID lautet {id}'
},
error: {
USER_LOGIN_FAILED: 'Die Benutzeranmeldung ist fehlgeschlagen und die Benutzer-ID lautet {id}'
},
fatal: {
USER_LOGIN_BLOCKED: 'Die Benutzeranmeldung ist blockiert und die Benutzer-ID lautet {id}'
}
}
const i18n = {
zh: {
USER_LOGIN: 'Benutzeranmeldung- Die Benutzer-ID lautet {id}'
}
}
const logger1 = new Logger({
code,
i18n
})
logger1.code('USER_LOGIN', { id: 'USER001' })
// Sie sehen folgende Ausgabe:
// 2020-01-01 00:00:00.000 INFO MAIN - Der Benutzer loggt sich ein und die Benutzer-ID lautet USER001
const logger2 = new Logger({
code,
i18n,
language: 'zh-US'
})
logger2.code('USER_LOGIN', { id: 'USER001' })
// Sie sehen folgende Ausgabe:
// 2020-01-01 00:00:00.000 INFO MAIN - Der Benutzer loggt sich ein und die Benutzer-ID lautet USER001
const logger3 = new Logger({
code,
i18n,
language: 'zh-CN'
})
logger3.code('USER_LOGIN', { id: 'USER001' })
// Sie sehen folgende Ausgabe:
// 2020-01-01 00:00:00.000 INFO MAIN - Benutzeranmeldung- Die Benutzer-ID lautet USER001
process.env.LANGUAGE = 'zh-CN'
import Logger from '@sumor/logger'
const code = {
info: {
USER_LOGIN: 'Der Benutzer loggt sich ein und die Benutzer-ID lautet {id}'
}
}
const i18n = {
zh: {
USER_LOGIN: 'Benutzeranmeldung- Die Benutzer-ID lautet {id}'
}
}
const logger = new Logger({
code,
i18n
})
logger.code('USER_LOGIN', { id: 'USER001' })
// Sie sehen folgende Ausgabe:
// 2020-01-01 00:00:00.000 INFO MAIN - Benutzeranmeldung- Die Benutzer-ID lautet USER001
Wenn Sie Logs nach Ebene filtern möchten, können Sie den folgenden Code verwenden:
import Logger from '@sumor/logger'
const logger = new Logger({
level: 'info'
})
logger.trace('Hallo Welt!') // trace ist die niedrigste Ebene, wird nicht ausgegeben
logger.debug('Hallo Welt!') // debug ist niedriger als info, wird nicht ausgegeben
logger.info('Hallo Welt!') // info ist gleich info, wird ausgegeben
logger.warn('Hallo Welt!') // warn ist höher als info, wird ausgegeben
logger.error('Hallo Welt!') // error ist höher als info, wird ausgegeben
logger.fatal('Hallo Welt!') // fatal ist die höchste Ebene, wird ausgegeben
Wenn Sie diese Bibliothek in mehreren Bibliotheken verwenden, können Sie den folgenden Code verwenden:
import Logger from '@sumor/logger'
const logger = new Logger()
process.env.LOG_LEVEL = 'info'
logger.trace('Hallo Welt!') // trace ist die niedrigste Ebene, wird nicht ausgegeben
logger.debug('Hallo Welt!') // debug ist niedriger als info, wird nicht ausgegeben
logger.info('Hallo Welt!') // info ist gleich info, wird ausgegeben
logger.warn('Hallo Welt!') // warn ist höher als info, wird ausgegeben
logger.error('Hallo Welt!') // error ist höher als info, wird ausgegeben
process.env.LOG_LEVEL = 'warn' // Ändern des Log-Levels in Echtzeit
logger.info('Hallo Welt!') // info ist niedriger als warn, wird nicht ausgegeben