Javascript Winston Logger能否在前端用于日志记录?

Javascript Winston Logger能否在前端用于日志记录?,javascript,node.js,angular,express,winston,Javascript,Node.js,Angular,Express,Winston,我正在创建具有完整平均堆栈的应用程序 NodeJs、Angular 6、ExpressJs和MongoDB 我已经成功地创建了一个服务器,它可以完美地工作,而不是使用console.log在我的应用程序中记录错误时,我决定使用winstonlogger这就是我现在所拥有的 服务器端 注意:服务器端的Winston工作正常 客户端 我想在客户端angular 6应用程序中使用winston 示例:在我的一个组件中,我有这个 import * as logger from "winston"; ..

我正在创建具有完整平均堆栈的应用程序

NodeJs、Angular 6、ExpressJs和MongoDB

我已经成功地创建了一个服务器,它可以完美地工作,而不是使用
console.log
在我的应用程序中记录错误时,我决定使用
winstonlogger
这就是我现在所拥有的

服务器端

注意:服务器端的Winston工作正常

客户端

我想在客户端angular 6应用程序中使用winston

示例:在我的一个组件中,我有这个

import * as logger from "winston";
.........
 this.activeRouter.params.subscribe((params) => {
      // tslint:disable-next-line:prefer-const
      let id = params['id'];
      this.moviesService.getReview(id)
        .subscribe(review => {
          console.log(review);
          this.review = review;
        });
    });
如您所见,我使用的是
console.log(review)
,而不是控制台日志,我想使用
Winston


如何在客户端使用Winston logger?我是所有这些东西的新手,任何帮助都将被感谢。

根据这张票:它几乎可以用于浏览器了?还是差不多准备好了?听起来他们最近开始支持在浏览器环境中进行日志记录。

是的,这是可能的,但是浏览器的默认传输非常有限。我建议使用

npm安装winston运输浏览器控制台-S

它易于使用并支持记录json对象:

import * as winston from "winston";
import BrowserConsole from 'winston-transport-browserconsole';

const level = "debug";
winston.configure({
    transports: [
        new BrowserConsole(
            {
                format: winston.format.simple(),
                level,
            },
        ),
    ],
});

winston.debug("DEBUG ", {a: 1, b: "two"});

是-可以(技术上)在浏览器中使用。应该是吗?几乎肯定不是(很遗憾)。温斯顿是一个出色的节点记录器。但是,强调“为节点”。如果要在客户端上使用它,除了winston本身之外,还需要添加一组节点多边形填充,相对于其他客户端记录器,winston本身非常大。在winston和那些Polyfill之间,您将显著增加您的工件的大小。另外,仅供参考,webpack 5删除了这些节点多边形填充,因此您需要手动将它们添加回去。

在哪里可以找到如何使用它们的示例?例如,如果要登录到持久文件,如何设置文件传输?或者到一个像DB这样的远程位置?
import * as winston from "winston";
import BrowserConsole from 'winston-transport-browserconsole';

const level = "debug";
winston.configure({
    transports: [
        new BrowserConsole(
            {
                format: winston.format.simple(),
                level,
            },
        ),
    ],
});

winston.debug("DEBUG ", {a: 1, b: "two"});