标签: log4js-node

log4js-node-DEP0004 - Angular 12 karma 单元测试中的弃用警告

在全新的 Angular 12 应用程序中运行单元测试时,我收到以下弃用警告:

(node:14940) [log4js-node-DEP0004] DeprecationWarning:模式 %d{DATE} 已被弃用,因为它在使用时会引起混乱。请改用 %d{DATETIME}。

在此输入图像描述

why log4js提示"karma" depends on it。警告本身很清楚应该做什么,但缺少两个关键信息:

  • 它没有说旧语法何时/是否停止工作
  • 它没有提供解决方法(除了分叉karma并用新语法替换已弃用的语法之外 - 我绝对不会这样做)。

降级log4js到早期版本,不会输出警告,使用forceResolutions似乎不是一个好主意,特别是因为我发现了一些与其中的漏洞相关的github线程,尽管业力似乎没有受到影响

问题:是否有可行的途径可以避免收到警告,或者“现在我们等待”(更新karma)是唯一的选择?

注意:我也在karma 的 repo上询问过。

unit-testing karma-runner karma-jasmine log4js-node angular-cli

23
推荐指数
1
解决办法
1万
查看次数

Log4JS npm 包是否容易受到 CVE-2021-44228 Log4J 漏洞的影响

正如标题所说。在网上寻找明确的答案,但在任何地方都找不到答案,因为大多数都只是链接到 Log4J。

log4j log4js-node

13
推荐指数
1
解决办法
8082
查看次数

使用节点js中的log4js将日志写入文件

我的代码是:

log4js.loadAppender('file');
log4js.addAppender(log4js.appenders.file('logs/cheese.log'), 'cheese');
logger.setLevel('DEBUG');

logger.trace('Entering cheese testing');
logger.debug('Got cheese.');
logger.info('Cheese is Gouda.');
logger.warn('Cheese is quite smelly.');
logger.error('Cheese is too ripe!');
logger.fatal('Cheese was breeding ground for listeria.');
Run Code Online (Sandbox Code Playgroud)

它正在创建一个名为'cheese'的文件,但其中没有任何内容.如何写内容呢?

logging node.js log4js-node

12
推荐指数
2
解决办法
2万
查看次数

在Log4js中禁用控制台打印

我刚刚在Node.js应用程序中使用Log4js启用了日志记录.我使用了https://github.com/nomiddlename/log4js-node中的配置选项,它运行正常.

它将日志写入日志文件以及控制台中.我不希望在控制台中打印它. 无法弄清楚如何配置它.非常抱歉问这个愚蠢的问题.

logging node.js log4js-node

8
推荐指数
2
解决办法
6129
查看次数

如何在karma的测试用例中使用log4js?

目前我需要在我的测试用例中添加log4js支持,如下所示:

it(' QuestionController saveQuestion method Testing ',  inject(function(localStorageService) {
    ***var log4js = require('log4js');
    var logger = log4js.getLogger();
    logger.debug("Some debug messages");***

    expect({}).toEqual(localStorageService.get('questionInfoStorage'));

  }));
Run Code Online (Sandbox Code Playgroud)

我试图在karma.conf.js文件中包含log4js js和repire js文件,它不起作用并给出一些错误,如"模块名称"事件"尚未加载上下文"的东西.

以前是否有人提出同样的问题?谢谢提前!

karma-runner log4js-node

5
推荐指数
0
解决办法
324
查看次数

nodejs 有没有办法以 JSON 格式打印 log4js 输出?

我正在尝试以 JSON 格式获取 log4js 的输出,以便我可以轻松跟踪它。有什么方法可以在 configuration.json 中设置,以便 log4js 生成的输出采用 JSON 格式?

目前我正在使用以下配置。

{
 "appenders": [
{
  "category": "XXXXX",
  "type": "dateFile",
  "filename": "XXXXXXXX",
  "pattern": "-from-MM-dd",
  "layout": {
    "type": "messagePassThrough"
  }
},
{
  "category": "XXXXXXXXX",
  "type": "dateFile",
  "filename": "XXXXXXXX",
  "pattern": "-from-MM-dd",
  "layout": {
    "type": "messagePassThrough"
  }
}
 ],
"levels": {
"XXXXConfig":  "INFO",
"XXXXXjectConfig" : "INFO"
 }
}
Run Code Online (Sandbox Code Playgroud)

我得到的输出格式如下:

DEBUG:  1458562784032 : 2016-03-21T12:19:44.4444+00:00 : Data in request: : {
"action": "XXXXXXX",
"user": {
    "username": "XXXX",
     "id" : XXXX,
    "pos" : XXXX
},
"version": …
Run Code Online (Sandbox Code Playgroud)

javascript node.js log4js-node

5
推荐指数
1
解决办法
2817
查看次数

Log4js javascript 创建每日日志文件

我有一个nodejs项目,使用log4js来写日志。我想在开始新日期时创建新的文件日志。
示例:
daily.2017_07_31.log
daily.2017_08_01.log
daily.2017_08_02.log
daily.2017_08_03.log

在java中,我知道配置log4j,但在带有log4js的nodejs中我不知道。感谢大家的帮助:)

node.js npm express log4js-node

5
推荐指数
1
解决办法
8024
查看次数

用log4js在新的差异文件中写入日志?

我想将日志写入不同的文件。

const log4js = require('log4js');
log4js.configure({
    appenders: { integra: { type: 'file', filename: './logs/doc.log' } },
    categories: { default: { appenders: ['doc'], level: 'error' } }
});
const logger = log4js.getLogger('doc');

module.exports = logger
Run Code Online (Sandbox Code Playgroud)

按照上面的代码,我只能配置一次日志。但是我想为每个日志动态地写一个日志文件。在上述情况下,我只能写一个文件。我需要一种可以写入新日志文件的方法。我想在不同的路径下写入多个日志文件。

logging node.js log4js-node

5
推荐指数
1
解决办法
94
查看次数

如何排除log4js类别不被记录到默认的appender

我正在使用node-log4js.(这是log4JS,而不是log4J!)我认为记录器的"类别"就像你把Log4中的字符串放入记录器的构造函数中一样(通常你把你的fqn类名放在那里),这样log4j可以把记录的东西放进去到正确的位置.

我得到了以下配置:

{
    "appenders": [
        {
            "type": "console",
        },
        {
            "type": "file",
            "absolute": true,
            "filename": "/tmp/app.log",
            "maxLogSize": 20480,
            "backups": 10     
        },
        {
            "type": "console",
            "category": "app.access"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

期望的行为是所有"app.access"内容只会转到最后一个appender(现在也是控制台,但是将来可能会改变).目前,具有"app.access"类别的所有记录将被记录两次到控制台,一次记录到文件.

有没有办法给那些其他两个appender一个"除app.access"以外的所有类别?怎么样?

非常感谢你提前

javascript logging node.js log4js-node

3
推荐指数
1
解决办法
3909
查看次数

具有不同日志级别的 log4js appender

我正在尝试创建一个记录器配置,它仅将“错误”级别信息记录到控制台,将“调试”级别信息记录到文件附加程序。任何人都可以帮助如何使用上述配置创建记录器?

提前致谢。非常感谢帮助

log4j node.js winston log4js-node

3
推荐指数
2
解决办法
3330
查看次数

Node 的 log4js 不输出到文件,只输出到控制台

我需要一个 NodeJS 应用程序的基本日志系统,所以我正在用 做一些测试log4js,这似乎是这些情况的标准。我需要将消息打印到控制台和文件,因此我编写了以下代码:

// Logger
var log4js = require('log4js');

log4js.configure({
  appenders: {
    'console': { type: 'console' },
    'file': { type: 'file', filename: 'logs/mailer.log' }
  },
  categories: {
    default: { appenders: ['file', 'console'], level: 'DEBUG' },
  }
});

var logger = log4js.getLogger("Mailer");

logger.info("Starting application");

try {
  // CODE TO READ APP CONFIG FILE
}
catch(e) {
  logger.error("Couldn't read app configuration file (config.yml)");

  // This is the trouble maker. It kills the app without flushing the logs
  process.exit(1);
} …
Run Code Online (Sandbox Code Playgroud)

javascript node.js log4js-node

3
推荐指数
1
解决办法
1701
查看次数

如何使用 log4js 将控制台日志记录到文件中

我想记录控制台日志,无论是预期失败还是进入日志文件的任何异常。我怎么能不使用 try 和 catch 来做到这一点。在 LOG4j for java 中有 rootlogger,它会自动将所有系统信息日志记录到文件中。可以为 javascript 的 log4JS 做同样的事情

log4js.configure({
  appenders: [
    {
      type: "clustered",
      appenders: [
        {
          type: "dateFile",
          filename: "log/access.log",
          pattern: "-yyyy-MM-dd",
          category: "http"
        },
        {
          type: "file",
          filename: "log/app.log",
          maxLogSize: 10485760,
          numBackups: 3
        },
        {
          type: "logLevelFilter",
          level: "ERROR",
          appender: {
            type: "file",
            filename: "log/errors.log"
          }
        }
      ]
    }
  ]
})
Run Code Online (Sandbox Code Playgroud)

javascript typescript protractor log4js-node

2
推荐指数
1
解决办法
3880
查看次数

log4js ConsoleAppender初始化

我想知道是否有人碰巧使用Log4js有一些经验?看来它的正常ConsoleAppender在添加到logger对象后并不总是可以立即使用...如果我在文档中有两个顺序脚本标记,如:

//Initialize logger
<script type="text/javascript">                   
      var logger = new Log4js.getLogger("JSLOG");
      logger.addAppender(new Log4js.ConsoleAppender(logger, false));
      logger.setLevel(Log4js.Level.INFO);         
</script>


//Use logger
<script type="text/javascript">
     logger.info('Test test');
</script>
Run Code Online (Sandbox Code Playgroud)

...它会导致控制台弹出窗口(弹出窗口)出现,并在页面加载时显示错误消息:

12:58:23 PM WARN Log4js - Could not run the listener function () {
    return fn.apply(object, arguments);
}. 
TypeError: this.outputElement is null
Run Code Online (Sandbox Code Playgroud)

控制台仍然是初始化的,之后它就在那里,但是对于第一个记录器调用它似乎并不完全存在.如果我使第一个记录器调用setTimeout("logger.info('test test')",1000),它没有错误.所以它就像它没有立即准备好.任何人以前都会看到这个或知道解决方法可能是什么?

干杯

javascript logging log4js-node

1
推荐指数
1
解决办法
1751
查看次数