私はNode.jsを使用していますが、すべてコンソールログ(それらはconsole.log(message)
を使用)を取得する関数を作成したいと思います。 コンソールログをすべて取得してファイルに書き込むにはどうすればよいですか(は、を上書きしません)。ログを取得してNode.jsでファイルに書き込む方法は?
答えて
単純なアプローチは、データを記録し、また、ファイルシステムへの書き込みをあなたの関数を使用してコンソールにlog
関数をオーバーライドすることです。ここで
が一般的な考え方です:
function attachFSLogger(filePath) {
// remember the old log method
const oldLog = console.log; // remove this line if you only want to log into the file
// override console.log
console.log = (...messages) => {
// log the console message immediately as usual
oldLog.apply(console, messages); // remove this line if you only want to log into the file
// asynchronously append to the file log
fs.appendFile(filePath, messages.join('\n'), (err) => {
if (err) throw err;
});
}
}
attachFSLogger('./logs.txt');
console.log('test'); // logs 'test' and also appends 'test' to logs.txt
あなたが頻繁に物事をログに記録することが予想される場合は、ストリームを使用してefficientより次のようになります。
function attachFSLogger(filePath) {
// remember the old log method
const oldLog = console.log; // remove this line if you only want to log into the file
// create a write stream for the given file path
const fsLog = fs.createWriteStream(filePath, {
flags: 'a' // 'a' means appending
})
// override console.log
console.log = (...messages) => {
// log the console message immediately as usual
oldLog.apply(console, messages); // remove this line if you only want to log into the file
// stream message to the file log
fsLog.write(messages.join('\n'));
}
}
attachFSLogger('./logs.txt');
console.log('test'); // logs 'test' and also appends 'test' to logs.txt
ことが言われていると、多くのライブラリがそこにありますあなたのためにこのようなことを行い、すでに完全にテストされています。ここで
がカップルだ:そう代わりにconsole.log `のnodejsライブラリの場合、npm repoはあなたの友人です。それらの多くを見つけて、あなたのニーズに最も適したものを試すことができます。例えばhttps://www.npmjs.com/package/log最初の検索結果はlog
です。
あなたはもちろんたとえば、お好みのファイルへの書き込み、独自の機能を持つコンソール機能を上書きすることによって、同様にそれを行うには、コンソールに独自のフックを実現することができます。
var fs = require('fs');
function myLog(file) {
return function() {
fs.appendFileSync(file || 'log.txt', arguments.join('\n'));
}
}
console.log = myLog();
console.warn = myLog();
console.error = myLog('errorLog.txt');
()' '私はmyLog()'を使うのでしょうか?また、 'console.log'はログですか、それとも単に関数を上書きしていますか? – WebCodingFun
私はちょうどそのコードを使ってみましたが、エラーが発生しました: 'fs.appendFileSync(file | 'log.txt'、arguments.join( '\ n'); ^ SyntaxError:missing)引数リストの後**矢印は 'arguments.join'関数の閉じ括弧を指しています** – WebCodingFun
はそこに閉じ括弧を逃しました - それはちょうど一般的な方向でした...今更新されました –
ロガーを.jsあなたのコード内の、その後
var fs = require('fs');
var log = [];
//override default console.log behaviour
console.log = function(d) {
process.stdout.write(d + '\n');
log.push(d); //intercept every log and keep the value
};
//log to file
function log(filePath, clb){
clb = clb || function(){}; //optional callback
fs.truncate(filePath, 0, function() {
fs.writeFile(filePath, string, function (err) {
clb(err)
});
});
}
module.exports = log;
は、ファイルをインポートし、必要なときに関数を呼び出します。
var logger = require('./logger');
logger.log('log.txt', function(err){
if(err)
console.log(err);
//else ok
});
返される:'エラー:モジュールを見つけることができません'。/ logger'' – WebCodingFun
別のjavascriptファイルの中にコードの最初のブロックを入れなければなりません。私は名前としてlogger.jsを使用しました(requireはそのファイルを探しています)。これがエラーを起こす理由です。 – Karim
- 1. ログを取得してファイルに書き込む方法
- 2. マルチスレッドアプリケーションでファイルにログを書き込む
- 3. anglejsログをファイルに書き込む方法は?
- 4. phoenixフレームワークでlogger_file_backendを使用してファイルにログを書き込む方法
- 5. CSVファイルを取得してモデルをレールに書き込む方法は?
- 6. Python - ログをファイルに書き込む
- 7. Microsoft WindowsでNode.jsを使用してファイルを書き込む方法は?
- 8. node.jsを使用してバイナリデータをファイルに書き込む方法は?
- 9. Monologログをファイルとリモートデータベースに書き込む方法
- 10. NLogを統合してAzureにログを書き込む方法
- 11. node.js結果をファイルに書き込む
- 12. Node.js .txtファイルに行を書き込む
- 13. NSMutableArrayでindexPathを取得して書き込む方法
- 14. ファイルに直接書き込むことなく、後でログを集計してファイルに書き込む
- 15. Jmeterでlog4jログをmysqlデータベースに書き込む方法は?
- 16. OCamlファイルに書き込む方法は?
- 17. C#でファイルに書き込む方法
- 18. スタックオーバーフローの取得log4jを使用してログを書き込むときのエラー
- 19. Phonegapアプリケーション開発でログを書き込む方法は?
- 20. node.jsを使用してファイルに書き込む
- 21. コンソールの代わりにファイルにsequelizeログを書き込む方法は?
- 22. RubyMine、RSpecログにメッセージを書き込む方法は?
- 23. エンタープライズライブラリ5.0:XML構成なしでログをファイルに書き込む
- 24. Node.jsソケットに書き込む
- 25. ローカルドキュメントライブラリにファイルを書き込む方法
- 26. リンクリストオブジェクトをファイルに書き込む方法
- 27. マルチプロセッシングを使用してHDF5ファイルに書き込む方法は?
- 28. angularJS2を使用してファイルに書き込む方法は?
- 29. CSOMを使用してULSログに例外を書き込む方法は?
- 30. WebSocketsとRESTfulインターフェイス、Node.jsにDRYコードを書き込む方法は?
'エラー:EPERM:操作が許可されていません。 'C:\ Program Files \ nodejs \ logs.txt' at Error(ネイティブ)'それを返したときに返されたもの – WebCodingFun
権限の問題です。管理者または制限されていないフォルダー内でスクリプトを実行します。 – nem035
ありがとう!しかし、それは新しい行に書き込むことはありません...どうすれば新しい行が記録されるのですか? – WebCodingFun