مُدون

أداة سومور كلاود.
توثيق إضافي

هذا مُدون خفيف الوزن لـ 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('Hello World!')
// سترى الإخراج التالي:
// 2020-01-01 00:00:00.000 TRACE MAIN - Hello World!

تغيير النطاق

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

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

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

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

import Logger from '@sumor/logger'
const logger = new Logger({
  id: 'USER001'
})
logger.trace('Hello World!')
// سترى الإخراج التالي:
// 2020-01-01 00:00:00.000 TRACE MAIN USER001 - Hello World!

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

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

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

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

import Logger from '@sumor/logger'
const logger1 = new Logger({
  offset: 2 * 60 // إزاحة UTC+2 هي 2 ساعات
})
logger1.info('Hello World!')
// سترى الإخراج التالي:
// 2020-01-01 02:00:00.000 INFO MAIN - Hello World!

const logger2 = new Logger({
  offset: 8 * 60 // إزاحة UTC+8 هي 8 ساعات
})
logger2.info('Hello World!')
// سترى الإخراج التالي:
// 2020-01-01 08:00:00.000 INFO MAIN - Hello World!

رمز مُعرَّف مُسبقًا

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