Node.js 中对日志管理log4js的的配置和使用

本文介绍了如何在Node.js环境中使用log4js进行日志管理。首先,通过log4js安装步骤引入日志库。接着,详细讲解了新建log4js.js配置文件,设置日志输出的详细规则。最后,阐述了在应用程序中如何调用这些配置进行日志记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

log4js

log4js安装

npm install log4js

日志文件配置: 新建log4js.js文件,对日志输出的情况进行配置

// 日志配置文件
import path from "path";
import log4js from "log4js";

// log4js默认的日志级别如下:ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < MARK < OFF

const __dirname = path.resolve("./");
log4js.configure({
  appenders: {
    // 配置打印输出源
    trace: {
      type: "console", // 控制台打印日志
      // type: "file", // 表示日志输出为普通文件,在此种配置下日志会输出到目标文件夹的目标文件中,并会随着文件大小的变化自动份文件
      // type: "dateFile", // 表示是输出按时间分文件的日志,在此种配置下,日志会输出到目标目录下,并以时间格式命名,随着时间的推移,以时间格式命名的文件如果尚未存在,则自动创建新的文件.
      // compress: true, //(默认为false) - 在滚动期间压缩备份文件(备份文件将具有.gz扩展名)
      // maxLogSize: 10000000, // 文件最大存储空间,单位是字节,只在type: file模式有效,表示文件多大时才会创建下一个文件( xxx.log .1 之类)
      filename: path.join(__dirname, "/logger/logs", "trace", "trace"), // 写入日志文件的路径
      pattern: "yyyy-MM-dd.log", //确定何时滚动日志的模式,只在type: dateFile模式有效,(默认为.yyyy-MM-dd0),表示一个文件的时间命名模式,格式:.yyyy-MM-dd-hh:mm:ss.log,在生成文件中会依照pattern配置来在filename的文件结尾追加一个时间串来命名文件。
      encoding: "utf-8", // default "utf-8",文件的编码
      alwaysIncludePattern: true, //将模式包含在当前日志文件的名称以及备份中,只在type: dateFile模式有效,(默认为false),配置为ture即最终的日志路径文件名为filename + pattern
      //backups: 只在type: file模式有效,表示备份的文件数量,如果文件过多则会将最旧的删除。
    },
    file: {
      type: "file",
      filename: path.join(__dirname, "/logger/logs", 'log'),
      pattern: "yyyy-MM-dd.log",
      encoding: "utf-8",
      alwaysIncludePattern: true,
    },
    console: {
      type: "console",
    }
  },
  categories: {
    default: { appenders: ["console"], level: "trace" },
    cheese: { appenders: ["console", "file"], level: "warn" },
  }
});

export const logger = log4js.getLogger();
export const loggerCheese = log4js.getLogger('cheese');

日志调用

import { logger,loggerCheese } from '../logger/log4js.js';

// logger.all('all') 不直接使用
logger.trace("trace");
logger.debug('debug');
logger.info('info')
logger.info('info');
logger.warn('warn');
logger.error('error');
logger.fatal('fatal');
// logger.off('off'); 不直接使用
console.log('------------------------分割线-----------------------');


loggerCheese.trace("trace");
loggerCheese.debug('debug');
loggerCheese.info('info')
loggerCheese.info('info');
loggerCheese.warn('warn');
loggerCheese.error('error');
loggerCheese.fatal('fatal');
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值