如何修复 Protractor、log4js 配置错误?

How to fix Protractor, log4js configuration error?

我正在尝试 运行 量角器测试。但是面临 log4js 的问题。我做了 npm install log4js。启动前的配置看起来正确吗?当前版本的 log4js 的格式有什么我应该更改的吗?

错误如下:

Error: Problem with log4js configuration: ({
  appenders: {
    out: {
      type: 'log4js-protractor-appender',
      category: 'protractorLog4js'
    },
    app: {
      type: 'file',
      filename: './logs/ExecutionLog.log',
      category: 'protractorLog4js'
    }
  },
  categories: { default: { appenders: [ 'out', 'app' ], level: 'info' } }
}) - appender "out" is not valid (type "log4js-protractor-appender" could not be found)
    at C:\Project\PrjectName\node_modules\log4js\lib\configuration.js:31:13
    at Array.forEach (<anonymous>)
    at Object.throwExceptionIf (C:\Project\PrjectName\node_modules\log4js\lib\configuration.js:29:9)
    at createAppender (C:\Project\PrjectName\node_modules\log4js\lib\appenders\index.js:47:17)
    at C:\Project\PrjectName\node_modules\log4js\lib\appenders\index.js:77:25
    at Array.forEach (<anonymous>)
    at setup (C:\Project\PrjectName\node_modules\log4js\lib\appenders\index.js:75:33)
    at C:\Project\PrjectName\node_modules\log4js\lib\configuration.js:46:33
    at Array.forEach (<anonymous>)
    at Object.configure (C:\Project\PrjectName\node_modules\log4js\lib\configuration.js:46:13)
npm ERR! Test failed.  See above for more details.

这是我在配置文件中启动前的配置

beforeLaunch:function(){
          log4js.configure({
            appenders: {
              out:{ type: 'log4js-protractor-appender'},
              app:{ type: "file",
                    filename: './logs/ExecutionLog.log'}
              },
            categories: {
                    default: { appenders: [ 'out', 'app' ], level: 'info' }
            }
            });
        },

谢谢

log4js 支持的 appender 类型是:

export type Appender = CategoryFilterAppender
    | ConsoleAppender
    | FileAppender
    | SyncfileAppender
    | DateFileAppender
  | LogLevelFilterAppender
  | NoLogFilterAppender
    | MultiFileAppender
    | MultiprocessAppender
    | RecordingAppender
    | StandardErrorAppender
    | StandardOutputAppender
    | CustomAppender;

如果从名称中删除 "appender",您将获得受支持的类型,例如:控制台、文件、多文件...等等

这是一个示例配置。

const log4js_config: Configuration = {
        appenders: {
            consoleErrors: {
                type: 'logLevelFilter',
                appender: 'console',
                level: 'error'
            },
            console: {
                type: 'console'
            },
        },
        categories: {
            default: { appenders: [ 'console', 'consoleErrors' ], level: 'debug' }
        }
    };

const Log4js = require('log4js');
log4js.configure(LOG4JS_CONFIGURATION);

像这样,默认类别中有两种类型的附加程序。

  • console 无论级别如何,appender 都会在控制台中记录所有内容。
  • consoleErrors 覆盖控制台的其他规则并仅过滤错误级别或更高级别的消息到控制台。

您可以在以下位置阅读有关 log4js 配置的更多信息: https://github.com/log4js-node/log4js-node

附加程序如何工作以及如何配置它们的示例: https://github.com/log4js-node/log4js-node/tree/master/examples