• -1

إضافة التاريخ والوقت إلى log في node.js

لدي مشروع مبني باستخدام الجافاسكريبت express و node.js، وهو جاهز للنشر ولكن بداخله العديد من تعليمات الطباعة على console ضمن العمليات التي تجري فيه مثل:

console.log()

console.error()

والمشروع سيبقى قيد العمل دون توقّف، حيث سيتم طباعة رسائل الخطأ عند حدوثها لإمكانية الوصول إليها ومعالجتها.

هل هنالك طريقة لإضافة التاريخ والوقت لهذه الأخطاء أو المعلومات التي سيتم طباعتها في console؟ لأستطيع الوصول إلى هذه المعلومات بشكل أسرع.

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 1

لفعل ذلك تحتاج تثبيت بعض الوحدات مثل console-stamp و log-timestamp, يمكنك تثبيت الوحدة console-stamp من خلال الأمر التالي

npm install console-stamp --save

ثم تحتاج لإضافة السطر التالي في أعلى الملف app.js

require('console-stamp')(console, '[HH:MM:ss.l]');

سوف يظهر تنسيق الوقت بتنسيق UTC ولكن تستطيع تغييره كالتالي

express.logger.format('mydate', function() {
    var df = require('console-stamp/node_modules/dateformat');
    return df(new Date(), 'HH:MM:ss.l');
});
app.use(express.logger('[:mydate] :method :url :status :res[content-length] - :remote-addr - :response-time ms'));

بعد ذلك سوف يظهر الوقت بجانب كل عملية طباعة, بالنسبة للوحدة log-timestamp تستطيع تثبيتها من خلال الامر التالي

npm install log-timestamp

ويمكنك استخدامها بشكل مباشر 
 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 1

يمكنك استخدام ال  log-timestamp ببساطة من خلال إضافتها فقط 

أولاً تقوم بتثبيتها من خلال npm

npm install log-timestamp

ثانياً تقوم بإستدعائها والطباعة لرؤية الفرق

console.log('Before');

require('log-timestamp'); //هذا السطر هو المطلوب فقط

console.log('After');

كما يمكنك استخدام الحل التالي إذا كنت لا تحتاج لإستخدام أو إضافات خارجية 

var origlog = console.log;

console.log = function( obj, ...placeholders ){
    if ( typeof obj === 'string' )
        placeholders.unshift( Date.now() + " " + obj );
    else
    {
        // This handles console.log( object )
        placeholders.unshift( obj );
        placeholders.unshift( Date.now() + " %j" );
    }

    origlog.apply( this, placeholders );
};

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

إذا كنت ترغب في ذلك ، يمكنك إنشاء مسجل مخصص لتطبيقك عن طريق توسيع بنية Node's في فئة "Console":

"use strict";
const moment = require('moment');
const util = require('util');
const Console = require('console').Console;

class Logger extends Console {
    constructor(stdout, stderr, ...otherArgs) {
        super(stdout, stderr, ...otherArgs);
    }
    log(...args) {
        super.log(moment().format('D MMM HH:mm:ss'), '-', util.format(...args));
    }
    error(...args) {
        super.error(moment().format('D MMM HH:mm:ss'), '-', util.format(...args));
    }
}
module.exports = (function() {
    return new Logger(process.stdout, process.stderr); 
}());
// بعد ذلك ، يمكنك استخدامه على النحو التالي
const logger = require('./logger');
logger.log('hello world', 123456);
logger.error('some error occurred', err);

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن