異なるファイルにある複数の呼び出し元から呼び出すことができるログ モジュールを構築しています。
私の目的は、プログラムの開始時にログ ファイルを初期化し、初期化全体を再度行わずに、以前に初期化されたファイルにログを記録する関数を呼び出し元に呼び出すことです。
モジュール エクスポートの概念がよくわからないので、お役に立てれば幸いです。
実際のロギングは、メソッドの書き込み時に発生します。メインの app.js ファイルでは、問題なく開始してログに記録できます。
ただし、別のファイルでは、ログファイルを再度作成せずにファイルにログを記録する方法について精神的なブロックがあります。
var fs = require('fs');
var fd = {},
log = {},
debug = false;
var tnlog = function(env, file, hostname, procname, pid) {
if (env == 'development')
debug = true;
fd = fs.createWriteStream(file, { flags: 'a', encoding: 'utf8', mode: 0644 });
log = { hostname: hostname, procname: procname, pid: pid };
};
tnlog.prototype.write = function(level, str) {
if (debug)
console.log(str);
else {
log.timestamp = Date.now();
log.level = level;
log.str = str;
fd.write(JSON.stringify(log) + '\n');
}
};
exports.tnlog = tnlog;
これは、メインファイルを初期化してログオンする方法です。
var logfile = '/var/log/node/www/app.log';
var tnlog = require('./lib/tnlog').tnlog,
log = new tnlog(app.get('env'), logfile, os.hostname(), appname, process.pid);
物事を行うためのより良い方法を提案できる場合は、間違いなく感謝します.