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" ...
随机推荐
- 【每日一linux命令3】参数(或称选项)顺序
一般除了特殊情况,参数是没有顺序的.举例而言,输入"–a –v"与输入"–v –a"以及"–av" 的执行效果是相同的.但若该参数后指定了要 ...
- TODO:Laravel增加验证码
TODO:Laravel增加验证码1. 先聊聊验证码是什么,有什么作用?验证码(CAPTCHA)是"Completely Automated Public Turing test to te ...
- LeetCode[3] Longest Substring Without Repeating Characters
题目描述 Given a string, find the length of the longest substring without repeating characters. For exam ...
- 设置tomcat远程debug
查看端口占用情况命令: netstat -tunlp |grep 8000 tomcat 启动远程debug: startup.sh 中的最后一行 exec "$PRGDIR"/& ...
- TFS 测试用例步骤数据统计
TFS系统集成了一套BI系统,基于SQL Server的Analysis Service进行实现的.通过这几年的深入使用,能够感触到这个数据数据仓库模型是多么的优秀,和微软官方提供的数据仓库示例Adv ...
- Redis配置文件redis.conf
1.地址 2.Units单位 1 配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit 2 对大小写不敏感 3.includes包含
- Centos 6.6 下搭建php5.2.17+Zend Optimizer3.3.9+Jexus环境
(为何安装php5.2.17这个版本 因为phpweb这个程序用到了Zend Optimizer3.3.9 这个东东已经停止更新了 最高支持5.2版本的php 所以就有了一晚上填坑的自己和总结了这篇文 ...
- Vue.js——60分钟快速入门
Vue.js介绍 Vue.js是当下很火的一个JavaScript MVVM库,它是以数据驱动和组件化的思想构建的.相比于Angular.js,Vue.js提供了更加简洁.更易于理解的API,使得我们 ...
- 玩转Windows服务系列——给Windows服务添加COM接口
当我们运行一个Windows服务的时候,一般情况下,我们会选择以非窗口或者非控制台的方式运行,这样,它就只是一个后台程序,没有界面供我们进行交互. 那么当我们想与Windows服务进行实时交互的时候, ...
- Go语言实战 - 我需要站内搜索
山坡网的用户抱怨"为什么搜索'二鬼子李富贵'找不到'二鬼子汉奸李富贵'?我用百度搜都能找到." 当时我就滴汗了,用户说的有道理,应该要能搜索到. 之前的方案很简单,用户输入的字串会 ...