مسجل

أداة Sumor Cloud.
المزيد من الوثائق

إنه مسجل خفيف الوزن لـ Node.JS. يمكنه إخراج السجلات بمستويات مختلفة، ويمكنك تخصيص نطاق، الهوية، والمنطقة الزمنية.

CI Test Coverage Audit

التثبيت

npm i @sumor/logger --save

المتطلبات

إصدار Node.JS

يتطلب إصدار Node.JS 16.x أو أعلى

يتطلب إصدار Node.JS نمط ES

نظرًا لأن هذه الحزمة مكتوبة بنمط ES module، يرجى تغيير الكود التالي في ملف package.json الخاص بك:

{
  "type": "module"
}

الاستخدام

الاستخدام العام

import Logger from '@sumor/logger'
const logger = new Logger()

logger.trace('مرحبًا بالعالم!')
// سوف ترى الناتج التالي:
// 2020-01-01 00:00:00.000 TRACE MAIN - مرحبًا بالعالم!

تغيير النطاق

في بعض الحالات، نحتاج لتصنيف السجلات. يُستخدم scope لهذا الغرض.

import Logger from '@sumor/logger'
const logger = new Logger({
  scope: 'DEMO'
})
logger.trace('مرحبًا بالعالم!')
// سوف ترى الناتج التالي:
// 2020-01-01 00:00:00.000 TRACE DEMO - مرحبًا بالعالم!

تحديد هوية المستخدم

في بعض الحالات، نحتاج لتحديد هوية المستخدم. يُستخدم id لهذا الغرض.

import Logger from '@sumor/logger'
const logger = new Logger({
  id: 'USER001'
})
logger.trace('مرحبًا بالعالم!')
// سوف ترى الناتج التالي:
// 2020-01-01 00:00:00.000 TRACE MAIN USER001 - مرحبًا بالعالم!

تغيير المستوى

في معظم الأحيان، نحتاج فقط إلى إخراج سجلات بمستوى معين. ثم يمكننا تقرير ما إذا كنا سنخزنها وعرضها أم لا.

import Logger from '@sumor/logger'
const logger = new Logger()
logger.trace('مرحبًا بالعالم!') // trace هو أدنى مستوى، سيتم إنتاج جميع السجلات
logger.debug('مرحبًا بالعالم!')
logger.info('مرحبًا بالعالم!')
logger.warn('مرحبًا بالعالم!')
logger.error('مرحبًا بالعالم!')
logger.fatal('مرحبًا بالعالم!') // fatal هو أعلى مستوى، سيتم إنتاج أخطاء حرجة فقط

تغيير المنطقة الزمنية

import Logger from '@sumor/logger'
const logger1 = new Logger({
  offset: 2 * 60 // تباين UTC+2 هو 2 ساعات
})
logger1.info('مرحبًا بالعالم!')
// سوف ترى الناتج التالي:
// 2020-01-01 02:00:00.000 INFO MAIN - مرحبًا بالعالم!

const logger2 = new Logger({
  offset: 8 * 60 // تباين UTC+8 هو 8 ساعات
})
logger2.info('مرحبًا بالعالم!')
// سوف ترى الناتج التالي:
// 2020-01-01 08:00:00.000 INFO MAIN - مرحبًا بالعالم!

رموز محددة مسبقًا

import Logger from '@sumor/logger'
const code = {
  trace: {
    HTTP_ACCESS: 'المستخدم يدخل عبر HTTP وعنوان IP هو {ip}'
  },
  debug: {
    USER_TOKEN_LOADED: 'تم قراءة معلومات تسجيل الدخول للمستخدم وهوية المستخدم هي {id}'
  },
  info: {
    USER_LOGIN: 'يقوم المستخدم بتسجيل الدخول وهوية المستخدم هي {id}'
  },
  warn: {
    USER_LOGOUT: 'يقوم المستخدم بتسجيل الخروج وهوية المستخدم هي {id}'
  },
  error: {
    USER_LOGIN_FAILED: 'فشل تسجيل الدخول للمستخدم وهوية المستخدم هي {id}'
  },
  fatal: {
    USER_LOGIN_BLOCKED: 'تم حظر تسجيل الدخول للمستخدم وهوية المستخدم هي {id}'
  }
}
const i18n = {
  zh: {
    USER_LOGIN: 'يقوم المستخدم بتسجيل الدخول وهوية المستخدم هي {id}'
  }
}
const logger1 = new Logger({
  code,
  i18n
})

logger1.code('USER_LOGIN', { id: 'USER001' })
// سوف ترى الناتج التالي:
// 2020-01-01 00:00:00.000 INFO MAIN - يقوم المستخدم بتسجيل الدخول وهوية المستخدم هي USER001

const logger2 = new Logger({
  code,
  i18n,
  language: 'zh-US'
})

logger2.code('USER_LOGIN', { id: 'USER001' })
// سوف ترى الناتج التالي:
// 2020-01-01 00:00:00.000 INFO MAIN - يقوم المستخدم بتسجيل الدخول وهوية المستخدم هي USER001

const logger3 = new Logger({
  code,
  i18n,
  language: 'zh-CN'
})

logger3.code('USER_LOGIN', { id: 'USER001' })
// سوف ترى الناتج التالي:
// 2020-01-01 00:00:00.000 INFO MAIN - يقوم المستخدم بتسجيل الدخول وهوية المستخدم هي USER001

ضبط اللغة العامة

process.env.LANGUAGE = 'zh-CN'
import Logger from '@sumor/logger'

const code = {
  info: {
    USER_LOGIN: 'يقوم المستخدم بتسجيل الدخول وهوية المستخدم هي {id}'
  }
}
const i18n = {
  zh: {
    USER_LOGIN: 'يقوم المستخدم بتسجيل الدخول وهوية المستخدم هي {id}'
  }
}
const logger = new Logger({
  code,
  i18n
})

logger.code('USER_LOGIN', { id: 'USER001' })
// سوف ترى الناتج التالي:
// 2020-01-01 00:00:00.000 INFO MAIN - يقوم المستخدم بتسجيل الدخول وهوية المستخدم هي USER001