log4js linux,日志管理 log4js

版本:

express:"~4.13.4"

log4js:"^0.6.38"

安装

npm install log4js

封装 log4js:

在项目根目录下新建文件 logger.js:

var log4js = require('log4js');

log4js.configure({

appenders: [{

type: 'console' // 控制台输出

}, {

type: 'dateFile', // 文件输出

filename: 'logs/', // 需要手动创建此文件夹

pattern: "yyyy-MM-dd.log",

alwaysIncludePattern: true,

maxLogSize: 1024,

backups: 4, // 日志备份数量,大于该数则自动删除

category: 'logInfo' // 记录器名

}],

replaceConsole: true // 替换 console.log

});

levels = {

'trace': log4js.levels.TRACE,

'debug': log4js.levels.DEBUG,

'info': log4js.levels.INFO,

'warn': log4js.levels.WARN,

'error': log4js.levels.ERROR,

'fatal': log4js.levels.FATAL

};

exports.logger = function (name, level) {

var logger = log4js.getLogger(name);

logger.setLevel(levels[level] || levels['debug']);

return logger;

};

// 配合 express 使用的方法

exports.use = function (app, level) {

app.use(log4js.connectLogger(log4js.getLogger('logInfo'), {

level: levels[level] || levels['debug'],

format: ':method :url :status'

}));

};

在上面的代码中 appenders 中配置了两个输出,一个是控制台输出,一个是文件输出。

说明:

log4js 的输出级别: trace,debug,info,warn,error,fatal

如果输出级别是 info,则不会打印出低于 info 级别的日志 trace,debug,只打印info,warn,error,fatal。这样做的好处在于,在生产环境中我们可能只关心异常和错误,并不关心调试信息。从而大大减少日志的输出,从而减少磁盘写入。而在开发环境中,我们可能需要打印非常多的信息,帮助开发人员定位错误,调试代码。

与 express 框架集成

在 app.js 中加入以下代码:

var log4js = require('./logger');

log4js.use(app);

在 index.js 中使用 logger 输出

var logger = require('../logger').logger('index');

/* GET home page. */

router.get('/', function (req, res, next) {

console.log('This is an index page!');

logger.info('This is an index page! -- log4js');

res.render('index', {title: 'Express'});

});

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/468143.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

嘻哈帝国第一季/全集Empire迅雷下载

英文译名Empire,第1季(2015-01-08)FOX.本季看点:《嘻哈帝国》卢西奥斯莱恩是一名超级音乐明星兼Empire娱乐公司的创始人,故事讲述了他如何在困境和失败中运营公司的故事。拥有庞大帝国的老板得了绝症,于是他决定培养继承人&#x…

cassandra可视化工具_一位数据科学家的私房工具清单

作为一位万人敬仰的数据科学家,不但需要培育一棵参天技能树,私人武器库里没有一票玩得转的大火力工具也是没法在江湖中呼风唤雨的。近日北卡来罗纳大学CTO,一位数据科学家Jefferson Heard分享了多年来收集沉淀的数据分析工具集:处…

Dev C++,一个好玩的猜数字游戏

周末了,看了一点代码,发现有一个好玩的数字游戏,贡献给大家,个人觉得还是挺好玩的。说个题外话,之前写的文章,都是零散的,主要是时间的原因,最近事情有点杂,一说到这个事…

[BZOJ 2500] 幸福的道路

照例先贴题面(汪汪汪) 2500: 幸福的道路 Time Limit: 20 Sec Memory Limit: 256 MBSubmit: 368 Solved: 145[Submit][Status][Discuss]Description 小T与小L终于决定走在一起,他们不想浪费在一起的每一分每一秒,所以他们决定每天早上一同晨练来享受在一…

c语言如何赋值星期到字母,C语言程序设计课程教案.doc

C语言程序设计课程教案《C语言程序设计》课程教案课题C语言概述课型新授课授课日期课时2教学目的1、了解C语言的特点;2、掌握C简单程序的结构;3、熟练掌握C程序的编辑、编译、链接和运行的过程。教学重点难点教学重点:C语言的特点与编程环境教…

python高并发架构_python高并发的解决方案

一.cdn加速 简单说就是把静态资源放到别人服务器上 全称:Content Delivery Network或Content Ddistribute Network,即内容分发网络 基本思路: 尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过…

你手上的PCB怎么制作的?几张动图揭晓工厂生产流程

在PCB出现之前,电路是通过点到点的接线组成的。这种方法的可靠性很低,因为随着电路的老化,线路的破裂会导致线路节点的断路或者短路。绕线技术是电路技术的一个重大进步,这种方法通过将小口径线材绕在连接点的柱子上,提…

ANR

出现类型: 1、按键或触摸事件在规定事件内未响应。 2、BroadcastReceiver在特定时间内未完成处理。 3、小概率service在特定时间内为完成处理。 常见的超时引发的ANR Activity: onCreate(), onResume(), onDestroy(), onKeyDown(), onClick()等,超时时间…

linux开发板作为蓝牙音箱,USB 蓝牙适配器在ARM 开发板下的使用

4、可能出现的问题和解决方案:4.1 编译dbus 时出现:1checking for accept4... yeschecking abstract socket namespace... nochecking for pkg-config... (cached) /usr/local/bin/pkg-configchecking pkg-config is at least version 0.9.0... yescheck…

细丝极恐的华为251事件

事情的来龙去脉我就不再详细描述了,我提几个问题点,觉得有点疑惑,也是自己对这个事件的看法。1、李洪元于2005年入职华为,2018年1月离职,在2016年11月21日向公司的投诉邮箱发了一份匿名邮件,至于发邮件的东…

mysql set语句_mysql--乱码解决(6)

1.字符集介绍mysql数据库字符集包括字符集(character)和校对规则(collation)两个概念,其中字符集是用来定义mysql数据字符串的存储方式,而校对规则则是定义比较字符串的方式。2.常见字符集3.解决中文乱码思想:保持linux、服务端、库、表、客户…

Android WebView常见问题及解决方案汇总【很全很实用】

http://www.cnblogs.com/olartan/p/5713013.html转载于:https://www.cnblogs.com/genggeng/p/7196484.html

c语言中字符 12是多少,c语言中字符串的讲解(DOC可编).doc

c语言中字符串的讲解(DOC可编).doc第一部分:字符串的概念---字符串:用双引号引起来的一串字符。在C语言,系统将自动的为字符串添加一个结束标志\0 ,该结束标志不作为字符串的实际长度,但作为结束标志在内存中占有1个字节的存储空间。例如: "abc&quo…

C 语言,你真的懂递归了吗?

什么是递归?要说到递归如果不说栈的话,我觉得有点不合适,递归特点就是不断的调用同一个函数,如果这个函数没有一个递归界限,那么就是死循环了,所以讨论递归,就必须要讨论递归的界限,…

github page hexo博客gitee_利用Github和hexo搭建个人免费博客

利用Github和hexo搭建个人免费博客详细过程:概述:详细的介绍了利用github和hexo搭建免费的博客,内容详细,浅显易懂,容易上手,大家一起进来看看吧!1、配置Github相关操作:​ ①新建一…

CURL常用命令

地址 http://www.cnblogs.com/gbyukg/p/3326825.html 转载于:https://www.cnblogs.com/jason886/p/7198825.html

漫画:三种 “奇葩” 的排序算法

在算法的世界里,有许多高效率的排序算法,比如快速排序、归并排序、桶排序......它们大大提高了程序的性能。但是,也有一些比较奇葩的排序算法,它们既不能做到高效率,也没有很好的可读性。那它们存在的意义是什么呢&…

常用c语言小程序,c语言经典小程序汇总大全

网上有很多的人说编程有多么多么无聊,其实:不要管别人怎么说,别人说什么,做你自己喜欢做的事就好。坚持下来,你会发现编程的乐趣的。当然,如果你觉得学习编程语言很痛苦,坚持了一段时间后无果&a…

opencv 二值化_Python-OpenCV获取图像轮廓的图像处理方法

一、引言在《OpenCV阈值处理函数threshold处理32位彩色图像的案例》介绍了threshold 函数,但threshold 的图像阈值处理对于某些光照不均的图像,这种全局阈值分割的方法并不能得到好的效果。图像阈值化操作中,我们更关心的是从二值化图像中分离…

让你不再害怕指针.pdf

今天推荐一本书,是讲解指针的,C 语言理解指针应该算一个重点,也算是一个难点,这个pdf 文章总结非常好,推荐给大家。想获取书籍Pdf的同学,请在公众号后台回复 「指针」,希望这本书籍让你们不再害…