【问题标题】:How to output a consoles log to another file as regular text如何将控制台日志作为常规文本输出到另一个文件
【发布时间】:2018-05-05 16:47:29
【问题描述】:

我正在尝试将我的 console.log 的结果打印到另一个 .txt 文件中,我将如何做到这一点?这就是我的 console.log 的样子:https://imgur.com/o2Vo471

我希望将其作为常规文本打印到输出文件中,例如“output.txt”

【问题讨论】:

  • 你基本上可以这样做:stackoverflow.com/questions/3665115/…
  • @AustinFrench 我没有在我的程序中使用任何 html - 我想在我的终端中输入一些内容并将其输出到另一个文件
  • 我明白了,所以我不认为这是重复的,但概念是一样的:分配内存,取出里面的东西,打开一个流并下载。我现在没有精力破解它,所以也许你可以或其他回答者会
  • 没关系,谢谢@AustinFrench

标签: javascript node.js file typescript ts-node


【解决方案1】:

您可以将程序重写为节点应用程序,然后直接从终端窗口运行它吗?然后,您无需为将控制台输出写入文件而苦苦挣扎……您可以改用 node 的 fs (Node.js Write a line into a .txt file)

【讨论】:

  • 它是一个node应用程序,我已经在使用node的fs了。我在问如何使用它将它记录到另一个文件中。您链接的问题询问如何将字符串发送到另一个文件,我想发送 console.log 的结果
【解决方案2】:

这个答案有效,但这不是我的目标,它适用于我认为的大多数其他人。你会想像这样运行你的程序:

npm start > output.txt

这会将您的控制台输出打印到 output.txt 文件中,我仍然需要使用 node fs 来实现这一点,所以我将不胜感激

【讨论】:

    【解决方案3】:

    我建议使用Winston 来实现这一点。 可以设置Winston Transports输出到文件winston.add(winston.transports.File, options)

    或者,如果您不想将任何 npm 模块添加到您的应用中,您可以这样做

    var fs = require('fs');
    
    module.exports = function(text) {
      fs.appendFile('output.txt', text + '\n', function (err) {
        if (err) throw err;
      });
    };
    

    并将其保存到项目目录中的文件中,例如 NameOfYourFile.js。

    然后你可以在你想要输出的文件中使用它

    var loger = require('./NameOfYourFile');
    
    loger('Logs');
    loger('Output');
    loger('Working');
    

    并且只需使用记录器而不是 console.log。您也可以轻松地重命名它。

    TypeScript 版本

    首先,安装节点模块

    npm install @types/node --save-dev

    然后为您的模块创建一个文件,例如 NameOfYourFile.ts

    import * as fs from 'fs';
    export default function(text) {
      fs.appendFile('output.txt', text + '\n', function (err) {
       if (err) throw err;
     });
    };
    

    然后就可以这样导入了

    import loger from './NameOfYourFile';
    
    loger('Logs');
    loger('Output');
    loger('Working');
    

    【讨论】:

    • 我正在使用打字稿@Vitaly - 它必须被制作成一个模块,但感谢您的建议
    • 我还想补充一下,我正在尝试使用 fs 完成此操作
    • 但我的第二个解决方案是一个模块,它使用 fs
    • 我知道它是一个模块,但模块在 typescript @Vitaly 中的工作方式不同
    • 我将打字稿版本添加到我的答案中
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-05
    • 2021-07-03
    • 2012-07-14
    • 1970-01-01
    • 2014-05-15
    • 2013-11-11
    • 1970-01-01
    相关资源
    最近更新 更多