webpack/test/helpers/LogTestPlugin.js

50 lines
1.2 KiB
JavaScript
Raw Normal View History

"use strict";
2025-05-01 22:36:51 +08:00
/** @typedef {import("../../").Compiler} Compiler */
/** @typedef {import("../../").Compilation} Compilation */
2019-07-31 23:16:37 +08:00
module.exports = class LogTestPlugin {
2025-05-01 22:36:51 +08:00
/**
* @param {boolean=} noTraced noTraced
*/
2019-07-31 23:16:37 +08:00
constructor(noTraced) {
this.noTraced = noTraced;
}
2024-07-31 12:23:44 +08:00
2025-05-01 22:36:51 +08:00
/**
* @param {Compiler} compiler compiler
*/
2019-07-31 23:16:37 +08:00
apply(compiler) {
2025-05-01 22:36:51 +08:00
/**
* @param {ReturnType<Compilation["getLogger"]>} logger logger
*/
const logSome = (logger) => {
2019-07-31 23:16:37 +08:00
logger.group("Group");
if (!this.noTraced) {
logger.error("Error");
logger.warn("Warning");
}
logger.info("Info");
logger.log("Log");
logger.debug("Debug");
2021-04-04 11:16:58 +08:00
logger.groupCollapsed("Collapsed group");
2019-07-31 23:16:37 +08:00
logger.log("Log inside collapsed group");
logger.group("Inner group");
logger.log("Inner inner message");
2019-07-31 23:16:37 +08:00
logger.groupEnd();
2019-08-05 18:15:03 +08:00
logger.groupEnd();
2019-07-31 23:16:37 +08:00
logger.log("Log");
logger.groupEnd();
logger.log("End");
};
2019-07-31 23:29:21 +08:00
logSome(compiler.getInfrastructureLogger("LogTestPlugin"));
compiler.hooks.compilation.tap("LogTestPlugin", (compilation) => {
2019-07-31 23:16:37 +08:00
const logger = compilation.getLogger("LogTestPlugin");
logSome(logger);
const otherLogger = compilation.getLogger("LogOtherTestPlugin");
otherLogger.debug("debug message only");
});
}
};