nodejs之log4js日志记录及error自动发送至邮箱

nodejs之log4js日志记录及error自动发送至邮箱

依赖

npm install log4js --save
npm install @log4js-node/smtp --save

注:这里我简单的讲一下怎么使用,方便大家快速开发项目,我使用的是Typescript, 你也可以用Javascript,根据官方文档去配。
log4js地址
配置发送邮件地址

代码

  1. 先建几个文件夹----根据自己的需要建(图1)
    在这里插入图片描述
  2. log配置文件
//log.js文件
import * as log4js from 'log4js';
import * as path from 'path';
//自己的配置文件
import { config } from '../config'; 
//公共路径
const pubPath: string = path.resolve(process.cwd() + '/server/logs'); 
log4js.configure({
  appenders: {
    stdout: {
      //控制台输出
      type: 'stdout',
    },
    request: {
      //请求日志
      type: 'dateFile',
      filename: pubPath + '/request/request', // 需要手动建好目录,如图1所示
      // maxLogSize: 1024,// 只在 type: 'file' 中才支持
      // 指定pattern后无限备份
      pattern: 'yyyy-MM-dd.log', 
      // 不指定pattern时若为true会使用默认值'.yyyy-MM-dd'
      alwaysIncludePattern: true, 
    },
    error: {
      //错误日志
      type: 'dateFile',
      filename: pubPath + '/error/error',
      pattern: 'yyyy-MM-dd.log',
      alwaysIncludePattern: true,
    },
    other: {
      //其他日志
      type: 'dateFile',
      filename: pubPath + '/other/other',
      pattern: 'yyyy-MM-dd.log',
      alwaysIncludePattern: true,
    },
    email: {
      //发送错误报告至邮箱
      type: '@log4js-node/smtp',
      sender: config.email.auth.user, //发送邮件的邮箱
      subject: 'Latest error report', //标题
      SMTP: {
        host: config.email.host, //smtp.qq.com 这里我使用了QQ邮箱,你可以换成其他
        auth: config.email.auth, //auth { user: 'xxx@qq.com', pass: '密码' }
      },
      recipients: config.email.recipients, //接收邮件的邮箱
    },
  },
  categories: {
  	//default 当你使用log4js.getLogger(level),level不传,默认使用default
  	//appenders: [], 可以放入上面配置过的对象
    default: { appenders: ['request'], level: 'trace' }, 
    //email 方便得知项目bug
    error: { appenders: ['stdout', 'error', 'email'], level: 'error' }, 
    other: { appenders: ['other'], level: 'info' },
  },
});

//请求日志记录
export const loggerRequest = (message: any) => {
  log4js.getLogger('trace').trace(message);
};
//错误日志记录
export const loggerError = (message: any) => {
  log4js.getLogger('error').error(message);
};
//其他日志记录
export const loggerInfo = (message: any) => {
  log4js.getLogger('info').info(message);
};

3.使用

import { loggerRequest, loggerError, loggerInfo  } from './log';
loggerRequest ('自己测试一下');
loggerError('自己测试一下'); //根据上面的配置,使用loggerError,会接收一份邮件
loggerInfo ('自己测试一下');

4.error发送邮件
①首先你得有两个邮箱,一个发送邮件的邮箱,一个接收error的邮箱
②了解smtp,百度学习自己要用的邮箱
发送成功,如图所示
在这里插入图片描述
我是一只小白,不好的地方,请大家多多指教!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值