依赖
npm install log4js --save
npm install @log4js-node/smtp --save
注:这里我简单的讲一下怎么使用,方便大家快速开发项目,我使用的是Typescript, 你也可以用Javascript,根据官方文档去配。
log4js地址
配置发送邮件地址
代码
- 先建几个文件夹----根据自己的需要建(图1)
- 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,百度学习自己要用的邮箱
发送成功,如图所示
我是一只小白,不好的地方,请大家多多指教!