مُسجّل

أداة 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 - مرحبًا بالعالم!

تغيير النطاق

في بعض الحالات، نحتاج إلى تصنيف السجلات. يُستخدم "نطاق" لهذا الغرض.

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

تحديد المعرف

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

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