您好,登录后才能下订单哦!
密码登录
            
            
            
            
        登录注册
            
            
            
        点击 登录注册 即表示同意《亿速云用户服务条款》
        小编给大家分享一下如何搭建node服务实现日志处理,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
一、技术选型
二、基本概念
三、使用log4js
npm install log4js --save
yarn add log4js
const path = require('path');
const log4js = require('log4js');
// 配置log4js
log4js.configure({
    appenders: {
        // 控制台输出
        console: { type: 'console' },
        // 日志文件
        file: { type: 'file', filename: path.join(__dirname, '../../logs/server.log')}
    },
    categories: {
        // 默认日志
        default: { appenders: [ 'file', 'console' ], level: 'debug' },
    }
});
// 获取默认日志
const logger = log4js.getLogger();
module.exports = logger;server.js
再通过调用logger. info 输出INFO 级别的日志,这里web开发框架使用的Koa。
const Koa = require('koa');
const router = require('./router');
const logger = require('./util/log4jsLogger');
const port = 3000;
const app = new Koa()
    .use(router.routes())
    .use(router.allowedMethods());
app.listen(port, () => {
    logger.info(`Server running on port ${port}`);
});[2020-04-01T11:33:43.317] [INFO] default - Server running on port 3000
2020-04-01 11:33:43.317 [INFO] Server running on port 3000
// 自定义日志格式
const layout = {
    type: 'pattern',
    pattern: '%d{yyyy-MM-dd hh:mm:ss.SSS} [%p] %m'
};
log4js.configure({
    appenders: {
        // 控制台输出
        console: { type: 'console' },
        // 日志文件,通过设置layout 设置日志格式
        file: { type: 'file', filename: path.join(__dirname, '../../logs/server.log'), layout}
    },
    categories: {
        // 默认日志
        default: { appenders: [ 'file', 'console' ], level: 'debug' },
    }
});// 日志配置
log4js.configure({
    appenders: {
        // 控制台输出
        console: { type: 'console' },
        // 日志文件
        file: {
            type: 'dateFile',
            filename: path.join(__dirname, '../../logs/server.log'),
            // 日志切割后文件名后缀格式
            pattern: '.yyyy-MM-dd'
        }
    },
    categories: {
        // 默认日志
        default: { appenders: [ 'file', 'console' ], level: 'debug' },
    }
});const path = require('path');
const log4js = require('log4js');
// 配置log4js
log4js.configure({
    appenders: {
        // 控制台输出
        console: { type: 'console' },
        // 全部日志文件
        allFile: { type: 'file', filename: path.join(__dirname, '../../logs/server.log')},
        // 错误日志文件
        errorFile: { type: 'file', filename: path.join(__dirname, '../../logs/server-error.log')}
    },
    categories: {
        // 默认日志,输出debug 及以上级别的日志
        default: { appenders: [ 'allFile', 'console' ], level: 'debug' },
        // 错误日志,输出error 及以上级别的日志
        error: { appenders: [ 'errorFile' ], level: 'error' },
    }
});
// 获取默认日志
const defaultLogger = log4js.getLogger();
// 获取错误级别日志
const errorLogger = log4js.getLogger('error');
// 日志代理,同时调用默认日志和错误日志
const loggerProxy = {};
const levels = log4js.levels.levels;
levels.forEach(level => {
    const curLevel = level.levelStr.toLowerCase();
    loggerProxy[curLevel] = (...params) => {
        defaultLogger[curLevel](...params);
        errorLogger[curLevel](...params);
    }
});
module.exports = loggerProxy;/**
 * 创建日志代理方法
 * @param logLevel 日志级别
 * @param logger 日志对象
 * @return {function}
 */
function createLogProxy (logLevel, logger) {
    return (...param) => {
        logger[logLevel](...param);
    };
}
console.log = createLogProxy('debug', logger);
console.info = createLogProxy('info', logger);
console.warn = createLogProxy('warn', logger);
console.error = createLogProxy('error', logger);看完了这篇文章,相信你对“如何搭建node服务实现日志处理”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。