مسجّل

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

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

CI Test Coverage Audit

التثبيت

npm i @sumor/logger --save

المتطلبات الأولية

إصدار Node.JS

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

يتطلب وحدة ES Node.JS

نظرًا لأن هذه الحزمة مكتوبة بوحدة ES، الرجاء تغيير الكود التالي في ملف 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