首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >log4js -节点包-不写入文件

log4js -节点包-不写入文件
EN

Stack Overflow用户
提问于 2017-12-04 09:35:29
回答 1查看 1.5K关注 0票数 1

我是nodejs的新手,希望我的节点应用程序能够登录到一个文件以及控制台。

下面是我的代码结构:

fpa_log4j.json

代码语言:javascript
复制
{
  "appenders": {
    "fpa_file": {
      "type": "file",
      "filename": "fpa.log",
      "maxLogSize": 10485760,
      "backups": 10,
      "compress": true
    },
    "screen": {
      "type": "stdout",
      "layout": {
        "type": "coloured"
      }
    }
  },
  "categories": {
    "default": {
      "appenders": [
        "fpa_file",
        "screen"
      ],
      "level": "trace"
    }
  }
}

config.js

代码语言:javascript
复制
var LOG4J_CFG = 'config/fpa_log4j.json';
var fs = require('fs');
var log4js = require('log4js');
var path = require('path');

LOG4J_CFG = path.resolve(LOG4J_CFG);
log4js.configure(JSON.parse(fs.readFileSync(LOG4J_CFG, 'utf8')));
....
....
module.exports = {
    log4js,
    ....
    ....
}

app.js

代码语言:javascript
复制
var cfg = require('./config');
var log = cfg.log4js.getLogger("appMain");
log.info('FPA program STARTED!');

输出 2017年-12-04T03:20:17.791 appMain - FPA计划启动!

但是,日志文件似乎是空的:

代码语言:javascript
复制
dir fpa.log
 Volume in drive C is XXXXXXXXX
 Volume Serial Number is XXXXXXXXXXXX

 Directory of c:\fpaMain

12/04/2017  12:13 AM                 0 fpa.log
               1 File(s)              0 bytes
               0 Dir(s)  12,242,776,064 bytes free

坦率地说,几天前我就完成了这项工作。但后来有些东西改变了(唉,记不起来是什么了!)我想,然后登录文件就停止了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-06 10:14:51

好的。所以我终于想出来了。为了别人而在这里分享。它来了:

app.js中没有更多的行(为了清晰起见,这些行被删除了),而应用程序实际上是在log.info()声明之后立即崩溃的。我期待这些语句出现在日志文件中,就像它出现在控制台上一样。但是,我没有意识到,与其他编程语言不同的是,nodejs具有与生俱来的并行处理功能(这实际上是我热爱它的核心原因之一:)。

因此,在我的例子中,由于并行处理的非并行特性,nodejs只触发了log语句并继续处理其他语句。当它坠毁的时候,它把整个程序都毁了。由于写到控制台的速度比IO快得多(原因很明显!),所以它在屏幕上显示得更快。然而,在它可以写到文件系统之前,应用程序崩溃了,最终没有被写入文件!

经验教训:

  1. 永远记住nodejs ===并行处理
  2. 对于上述任何与IO相关的问题,请确保程序在崩溃之前运行完成,或者至少运行一段时间,从而为IO完成提供足够的时间。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47630276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档