Nodejs 使用 log4js 如何打出不同颜色的日志

Nodejs 使用 log4js 如何打出不同颜色的日志

如题,我想用不同颜色显示出打印内容

3 回复

Nodejs 使用 log4js 如何打出不同颜色的日志

在 Node.js 中使用 log4js 打印不同颜色的日志可以通过自定义 layout 和结合 chalk 库来实现。chalk 是一个非常流行的库,用于在终端中输出带有颜色和样式的文本。

步骤 1: 安装依赖包

首先,你需要安装 log4jschalk 这两个库。你可以通过 npm 来安装它们:

npm install log4js chalk

步骤 2: 配置 log4js

接下来,我们需要配置 log4js,以便我们可以使用自定义的格式化函数来添加颜色。以下是一个简单的配置示例:

const log4js = require('log4js');
const chalk = require('chalk');

// 自定义 layout 函数
function coloredLayout(layout) {
    return function (loggingEvent, callback) {
        const message = layout(loggingEvent, callback);
        // 根据日志级别选择不同的颜色
        switch (loggingEvent.level.levelStr) {
            case 'DEBUG':
                return chalk.cyan(message);
            case 'INFO':
                return chalk.green(message);
            case 'WARN':
                return chalk.yellow(message);
            case 'ERROR':
                return chalk.red(message);
            default:
                return message;
        }
    };
}

// 配置 log4js
log4js.configure({
    appenders: { 
        console: { type: 'console', layout: { type: 'pattern', pattern: '%d{yyyy-MM-dd hh:mm:ss.SSS} [%p] %c - %m' } }
    },
    categories: { default: { appenders: ['console'], level: 'all' } }
});

// 使用自定义 layout
log4js.addLayout('coloredLayout', coloredLayout);
log4js.getLogger().level = 'debug';
const logger = log4js.getLogger();
logger.setLayout(log4js.layouts.coloredLayout);

module.exports = logger;

步骤 3: 使用日志记录器

现在,你可以在你的应用程序中使用这个日志记录器了:

const logger = require('./path/to/logger');

logger.debug("这是一条调试信息");
logger.info("这是一条普通信息");
logger.warn("这是一条警告信息");
logger.error("这是一条错误信息");

解释

  • 我们首先创建了一个 coloredLayout 函数,它接收一个标准的 layout 函数,并根据日志级别返回带有相应颜色的字符串。
  • 然后我们配置了 log4js,并使用了 coloredLayout
  • 最后,我们通过 logger.setLayout 设置了日志记录器的布局。

这样,当你运行你的应用时,你会看到带有不同颜色的日志输出。


有个库叫:colors,你可以看下

要在 Node.js 中使用 log4js 打出不同颜色的日志,可以通过结合 log4jscolors 模块来实现。下面是一个简单的示例代码,展示如何配置 log4js 并输出不同颜色的日志。

首先,确保安装所需的依赖包:

npm install log4js colors

然后,你可以创建一个配置文件(例如 log4js-config.js)来设置日志格式,并在日志消息中添加颜色。

示例代码

log4js-config.js

const log4js = require('log4js');
const colors = require('colors');

// 配置日志格式
log4js.configure({
    appenders: { 
        out: { type: 'stdout', layout: { type: 'pattern', pattern: '%d{ISO8601} %5p %c - %m%n' } }
    },
    categories: {
        default: { appenders: ['out'], level: 'all' }
    }
});

const logger = log4js.getLogger();

// 定义带有颜色的日志函数
function coloredLog(level, message) {
    switch (level) {
        case 'info':
            console.log(colors.green(message));
            break;
        case 'warn':
            console.log(colors.yellow(message));
            break;
        case 'error':
            console.log(colors.red(message));
            break;
        default:
            logger[level](message);
    }
}

// 使用 coloredLog 函数输出不同颜色的日志
logger.level = 'debug';
coloredLog('info', 'This is an info message');
coloredLog('warn', 'This is a warning message');
coloredLog('error', 'This is an error message');

解释

  1. 安装依赖:首先安装 log4jscolors
  2. 配置 log4js:使用 log4js.configure 方法设置日志输出到控制台,并定义日志格式。
  3. 定义 coloredLog 函数:根据不同的日志级别,使用 colors 模块将日志消息染色。
  4. 调用 coloredLog 函数:通过 coloredLog 函数输出带有颜色的日志信息。

这样,你就可以在控制台上看到不同颜色的日志输出了。

回到顶部