首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有ES模块的log4js节点?

带有ES模块的log4js节点?
EN

Stack Overflow用户
提问于 2021-05-25 09:41:17
回答 1查看 967关注 0票数 1

我试图在代码中设置log4js节点。由于我想从不同的.js文件中写入同一个日志文件,所以我将其设置为根据文件外部文件。

代码语言:javascript
复制
const appSettings = {
        log4js: {
            traceLogConfig: {
                appenders: {
                    fileAppender: { type: 'file', filename: `./logs/${settings.custid}/${Date.now()}.log`},
                    consoleAppender: { type: 'console' }
                },
                categories: {
                    default: { appenders: ['fileAppender', 'consoleAppender'], level: 'trace'}
                }
            }
        }
    };
    
    module.exports = appSettings;

在档案中:

代码语言:javascript
复制
import log4js from 'log4js';

//Setting up logger
const { traceLogConfig } = require('./logs').log4js;
log4js.configure(traceLogConfig);
const logger = log4js.getLogger();

但是,当我试图运行代码时,会收到以下错误消息:

const { traceLogConfig }=需要量(‘./log’).log4js;^ ReferenceError:在ES模块作用域中没有定义require,您可以使用import来代替这个文件被视为ES模块,因为它有一个'.js‘文件扩展名,'package.json’包含"type":“package.json”。若要将其视为CommonJS脚本,请将其重命名为使用“.cjs”文件扩展名。

我不知道如何将此结构(const { traceLogConfig }=需要量(‘./logs’).log4js;)转换为ES6模块。我试过:

代码语言:javascript
复制
import {traceLogConfig} from './logs'.log4js
import {traceLogConfig} from './logs.log4js'
import {traceLogConfig} from './logs.js.log4js'

通常,visual代码会给我一盏小灯,它展示了如何自动将其转换为与ES6模块兼容的代码,但这一次它没有出现。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-26 10:20:57

好吧,我找到答案了。首先需要导入整个文件,如下所示:

代码语言:javascript
复制
import appSettings from '../logs.js';

然后,您需要在调用它时引用特定设置:

代码语言:javascript
复制
log4js.configure(appSettings.log4js.traceLogConfig);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67685442

复制
相关文章

相似问题

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