NodeJs之log4js
log4js
log4js是一个管理,记录日志的工具。
其实与morgan的作用类似。
安装
npm install -g log4js
log4js的6个日志级别
分别是:trace(蓝色)、debug(青色)、info(绿色)、warn(黄色)、error(红色)、fatal(粉色)
这6个level方便我们给日志设置不同的输出等级,不同的颜色也方便我们区分。
var log4js = require('log4js');
var logger = log4js.getLogger();
logger.trace('test1')
logger.debug('test2')
logger.info('test3')
logger.warn('test4')
logger.error('test4')
logger.fatal('test4')
日志的效果如下:
log4js的配置
file类型日志
当然,我们也可以具体配置log4js。
常用配置有##appenders##,##Levels##.appenders用来配置日志的具体的展现形式,Levels用来配置日志的展现等级。
例如:我们配置一个写入到文件中的日志。
var log4js = require('log4js');
//var logger = log4js.getLogger();
log4js.configure({
"appenders":[{
"type":"file",
"filename":__dirname+"/logs/logger.log",
"category":"logger"
}]
})
var loggerTest = log4js.getLogger('logger')
loggerTest.info('test')
logger.log文件中:
[2016-12-11 16:32:51.303] [INFO] logger - test
一定要先建立logs文件夹,不然会报错哦
我们也可以配置多个:
var log4js = require('log4js');
//var logger = log4js.getLogger();
log4js.configure({
"appenders":[{
"type":"file",
"filename":__dirname+"/logs/logger.log",
"category":"logger"
},{
"type":"file",
"filename":__dirname+"/logs/logger2.log",
"category":"logger2"
}]
})
var loggerTest = log4js.getLogger('logger')
var loggerTest2 = log4js.getLogger('logger2')
loggerTest.info('test')
loggerTest2.info('test2')
我们也可以控制输出的级别,通过在配置文件中添加##levels##
var log4js = require('log4js');
//var logger = log4js.getLogger();
log4js.configure({
"appenders":[{
"type":"file",
"filename":__dirname+"/logs/logger.log",
"category":"logger"
},{
"type":"file",
"filename":__dirname+"/logs/logger2.log",
"category":"logger2"
}],
"levels":{
"logger":"info",
"logger2":"warn"
}
})
var loggerTest = log4js.getLogger('logger')
var loggerTest2 = log4js.getLogger('logger2')
loggerTest.info('test')
loggerTest2.info('test2')
datefilel类型的日志
上面的日志输出的名称是固定的,这可能不是我们想要的。我们想要每天一个日志,我们需要修改##type##属性。
"type":"datefile",
"filename":__dirname+"/logs/logger",
"pattern": "-yyyy-MM-dd-hh.log",
"alwaysIncludePattern": true,
"category":"logger"
这样输出的日志的文件格式类似这种:logger-2016-12-11-18.log
需要配合##pattern##,##alwaysIncludePattern##来使用。
appenders是用来配置日志输出源信心的。
pattern:表示一个文件的时间命名格式,只有配合datefile才起作用
filename:表示文件的路径名称
type:表示日志输出类型
category:可以理解为一类日志的表示
alwaysIncludePattern:表示日志是否包含命名格式,只有配合datefile才起作用
backups:表示备份的文件数量,配合file类型
其他具体的内容可以参见:log4js的wiki
结合express
var log4js = require('log4js');
var express = require("express");
var app = express();
log4js.configure({
appenders: [
{ type: 'console' },
{ type: 'file', filename: 'logs/log4jsconnect.log', category: 'log4jslog' }
]
});
var logger = log4js.getLogger('log4jslog');
app.use(log4js.connectLogger(logger, { level: 'auto' }));
app.get('/', function(req,res) {
res.send('hello world');
});
打印出:
[2016-12-11 18:53:24.463] [INFO] log4jslog - ::1 - - "GET / HTTP/1.1" 200 170 "" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"
[2016-12-11 18:53:24.493] [INFO] log4jslog - ::1 - - "GET /stylesheets/style.css HTTP/1.1" 200 111 "http://localhost:3000/" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"
[2016-12-11 18:53:24.599] [ERROR] log4jslog - ::1 - - "GET /favicon.ico HTTP/1.1" 404 1188 "http://localhost:3000/" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"
除了上述的常用的方法,如果想要了解很多使用细则的话。可以参看##log4js的example##
出错的地方
一定要注意datafile与dateFile。在windows与linux上的大小写区分!
NodeJs之log4js的更多相关文章
- nodejs使用log4js记录日志
log4j是java里面最好用的日志记录插件,在.net上面也有移植log4j.net.同样也移植到了nodejs里面,多的不说,把自测通过的代码粘出来吧. var log4js = require( ...
- Nodejs 使用log4js日志
一.创建log4.js文件,保存日志到log文件,并在控制台输出,如果不控制台输出,把删除红色的代码 const log4js = require('log4js'), path = require( ...
- nodejs之log4js日志记录模块简单配置使用
在我的一个node express项目中,使用了log4js来生成日志并且保存到文件里,生成的文件如下: 文件名字叫:access.log 如果在配置log4js的时候允许了同时存在多个备份log文件 ...
- nodejs(log4js)服务中应用splunk进行Log存储、搜索、分析、监控、警告
标题党,等博主这个月的知识库上传之后再来更新博文
- NodeJs相关系列文章
1.图片上传之FileAPI与NodeJs 2.NodeJs之调试 3.CentOS下使用NVM 4.NodeJs之进程守护 5.Ubuntu下使用nvm 6.NodeJs之pm2 7.NodeJs之 ...
- openshift 容器云从入门到崩溃之八《日志聚合》
日志可以分为两部分 业务日志 业务日志一般是要长期保留的,以供以后有问题随时查询,elk是现在比较流行的日志方案,但是容器日志最好不要落地所以不能把logstash客户端包在容器里面 可以使用logs ...
- 玩转Nodejs日志管理log4js(转)
转自:http://blog.fens.me/nodejs-log4js/ 前言 日志对任何的应用来说都是至关重要的.在Nodejs中使用express框架并没有自带的日志模块,我们可以选择log4j ...
- koa2+log4js+sequelize搭建的nodejs服务
主要参考http://www.jianshu.com/p/6b816c609669这篇文章 npm安装使用国内taobao镜像,速度更快些 npm --registry https://registr ...
- nodejs日志管理log4js
常用的2种配置: 1.按文件大小分片,备份若干数量的文件 var log4js = require('log4js'); log4js.configure({ "appenders" ...
随机推荐
- Oracle分析函数入门
一.Oracle分析函数入门 分析函数是什么?分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计 ...
- 02.SQLServer性能优化之---牛逼的OSQL----大数据导入
汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 上一篇:01.SQLServer性能优化之----强大的文件组----分盘存储 http ...
- Vue.js 2.0 和 React、Augular等其他框架的全方位对比
引言 这个页面无疑是最难编写的,但也是非常重要的.或许你遇到了一些问题并且先前用其他的框架解决了.来这里的目的是看看Vue是否有更好的解决方案.那么你就来对了. 客观来说,作为核心团队成员,显然我们会 ...
- .NET平台开源项目速览(16)C#写PDF文件类库PDF File Writer介绍
1年前,我在文章:这些.NET开源项目你知道吗?.NET平台开源文档与报表处理组件集合(三)中(第9个项目),给大家推荐了一个开源免费的PDF读写组件 PDFSharp,PDFSharp我2年前就看过 ...
- zookeeper源码分析之四服务端(单机)处理请求流程
上文: zookeeper源码分析之一服务端启动过程 中,我们介绍了zookeeper服务器的启动过程,其中单机是ZookeeperServer启动,集群使用QuorumPeer启动,那么这次我们分析 ...
- 更愉快的书写CSS
我在写CSS的时候经常会碰到些麻烦事儿: 1)看上去蛮简单的排版却写了很久 2)代码写的越来越散,总是这里补一句,那里补一句,没有条理性 3)margin.padding.font-size等属性在不 ...
- .NET CoreCLR开发人员指南(上)
1.为什么每一个CLR开发人员都需要读这篇文章 和所有的其他的大型代码库相比,CLR代码库有很多而且比较成熟的代码调试工具去检测BUG.对于程序员来说,理解这些规则和习惯写法非常的重要. 这篇文章让所 ...
- [原] KVM 虚拟化原理探究(5)— 网络IO虚拟化
KVM 虚拟化原理探究(5)- 网络IO虚拟化 标签(空格分隔): KVM IO 虚拟化简介 前面的文章介绍了KVM的启动过程,CPU虚拟化,内存虚拟化原理.作为一个完整的风诺依曼计算机系统,必然有输 ...
- UML图中经常用到几种的关系图例
学习这个东西挺奇怪的,时间一长就容易忘记,或者记不清楚.今天看到一些UML图的关系,发现有些出入了,索性就写下来,以后再忘记的时候过来看看. 在UML的类图中,常见的有以下几种关系: 继承(Gener ...
- Postman - 功能强大的 API 接口请求调试和管理工具
Postman 是一款功能强大的的 Chrome 应用,可以便捷的调试接口.前端开发人员在开发或者调试 Web 程序的时候是需要一些方法来跟踪网页请求的,用户可以使用一些网络的监视工具比如著名的 Fi ...