سجل

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

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

CI Test التغطية فحص

التثبيت

npm i @sumor/logger --save

متطلبات

إصدار Node.JS

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

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

نظرًا لأن هذه الحزمة مكتوبة بتنسيق 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 - مرحبًا بالعالم!

تغير النطاق

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

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

تعريف المستخدم

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

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('مرحبًا بالعالم!') // الرصد هو الأدنى، سيتم إخراج جميع السجلات
logger.debug('مرحبًا بالعالم!')
logger.info('مرحبًا بالعالم!')
logger.warn('مرحبًا بالعالم!')
logger.error('مرحبًا بالعالم!')
logger.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}'
  },
  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