0

如果我尝试使用 winston 模块,我就成功了。不过,如果我尝试使用 bunyan,我的应用程序不会启动,也不会显示任何错误(或者我不知道如何找到错误)。

我正在使用 Visual Studio Code 进行调试,尽管我认为它与这个问题无关。

如果我只需要winston,我不会出错。当添加“bunyan.createLogger({name:“myapp”})”时会出现问题,如下所示。

我没有兴趣将 bunyan 与 winston 进行比较。我绝对有兴趣使用 bunyan,除非有与其他模块冲突的原因(我的意思是其他要求如下所示)。我刚刚在这里提到了winston,因为我可以成功使用它,并且我注意到winston 不依赖于“.createLogger”(至少我读过的示例从未将“.createLogger”用于winston,并且总是为bunyan 显示它)。

有些事情引起了我的注意,尽管我不知道它是否与这种情况有关,我也不知道为什么:我总是使用 npm install "the dependency" -s 安装依赖项,因为我想跟踪我的所有模块中使用的package.json 中的项目。对我来说有点奇怪,安装 npm 后我看不到它(请参阅下面的 package.json)。

var express = require('express');
var bodyParser = require('body-parser');
var Client = require('node-rest-client').Client;
var bunyan = require('bunyan');
//var winston = require('winston');

var logBunyan = bunyan.createLogger({name: "myapp"});

//winston.log('info', 'Hello distributed log files!');
//winston.info('Hello again distributed logs');

...

package.json(winston 和 bunyan 不应该出现在这里,因为它们都是用“-save”安装的吗?)

{
  "name": "myapp",
  "main": "server.js",
  "dependencies": {
    "body-parser": "^1.17.1",
    "express": "^4.15.2",
    "node-rest-client": "^3.0.3"
  }
}
4

2 回答 2

1

添加到您的 package.json 依赖项,例如:

"bunyan": "^1.8.8"

npm install然后运行你的应用程序。

示例 app.js:

var bunyan = require('bunyan');
var log = bunyan.createLogger({name: "myapp"});
log.info("Hello!");
于 2017-03-10T20:48:56.737 回答
0

问题根本不在于 Bunyan,也不在于 NodeJ。今天我对 util.inspect 有类似的问题。每当在 Visual Studio Code 中使用此代码时,我的服务器在没有任何有用信息的情况下崩溃。我尝试通过终端(节点 server.js)直接运行,我看到 util.inspect 和 bunyan.createLogger 都按预期工作。我在这种情况下潜水(通过终端工作,但不能通过 Visual Studio Code 工作),突然我意识到 Visual Studio Code 中的 TypeScript 版本和我的 Debian 中安装的版本之间存在一定的冲突。我不希望用更好的论据来解释,但它可能会帮助处于类似情况的人。我做了: 1 - 下载 Visual Studio Code 的便携版本,而不是使用 npm。我注意到一个小升级,从版本 1.8 到 1.10 2 - 我在终端 npm 中更新,nodejs 和 typescript PS.:如果我多加注意,我应该很容易明白这一点。每当我启动 VS Code 时,我都会收到“版本不匹配!全局 tsc (1.7.5) != VS Code 的语言服务 (2.2.1)。可能会出现不一致的编译错误”,现在这样的消息就结束了。这修复了错误。希望它可以帮助一些未来的读者。

于 2017-03-16T20:11:12.693 回答