اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

هل ما تريده هو تخزين النص الذي يطبعه برنامجك في منفّذ الأوامر في ملف؟ إذا كان كذلك، فتوجد طريقة تعمل مع كل البرامج، وهي استخدام عامل إعادة التوجيه إلى ملف:

node app.js > log.txt

هذه الطريقة تقوم بتخزين ما يظهر على الإخراج القياسي (Standard output - stdout)، لذلك، فالأخطاء لن تظهر في هذا الملف وستستمر بالظهور على الشاشة. لإعادة توجيه الأخطاء التي تظهر عبر إخراج الأخطاء القياسي (Standard Error Output - stderr) نحو ملف آخر يمكن فعل ذلك كالتالي:

node app.js > log.txt 2> errors.txt

إذا أردت جعل كل الإخراج، سواء كان مصدره من stdout أو من stderr في نفس الملف، فيمكن فعل ذلك بالأمر التالي:

node app.js > log.txt 2>&1

 

  • 0
نشر

مرحباً ,

رجى توضيح السؤال بشكل أفضل لنتمكن من تقديم المساعدة , لكن إن كان قصدك هو إنشاء برنامج بسيط في node js لالتقاط المحتوى الذي يتم طباعته من الحاسوب من خلال استخدام ()console.log , فسوف أقوم بتوضيح الأمر في المثال التالي :
 

const fs = require('fs');
const path = require('path');

// الدالة التي تقوم بتوجيه النص المطبوع إلى ملف نصي
function redirectConsoleOutputToFile(filePath) {
  const { log } = console;
  const outputStream = fs.createWriteStream(filePath, { flags: 'a' });

  console.log = function (message) {
    log.apply(console, arguments);
    outputStream.write(util.format(message) + '\n'); 
  };
}

// استخدام الدالة لتوجيه الطباعة إلى ملف نصي
const logFilePath = path.join(__dirname, 'output.txt');
redirectConsoleOutputToFile(logFilePath);


console.log('anything');
console.log('anything...');

// قراءة محتوى الملف النصي
fs.readFile(logFilePath, 'utf8', (err, data) => {
  if (err) {
    console.error('error', err);
    return;
  }

  console.log('محتوى الملف:');
  console.log(data);
});

 

قمت باستخدام redirectConsoleOutputToFile لتوجيه النص المطبوع من خلال console.log إلى ملف نصي باستخدام fs.createWriteStream.

يتم تحديد مسار الملف النصي الناتج باستخدام path.join مع اسم الملف المطلوب.

بعد توجيه الطباعة إلى الملف، يتم قراءة محتوى الملف باستخدام fs.readFile ويتم طباعته باستخدام console.log.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...