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的更多相关文章

  1. nodejs使用log4js记录日志

    log4j是java里面最好用的日志记录插件,在.net上面也有移植log4j.net.同样也移植到了nodejs里面,多的不说,把自测通过的代码粘出来吧. var log4js = require( ...

  2. Nodejs 使用log4js日志

    一.创建log4.js文件,保存日志到log文件,并在控制台输出,如果不控制台输出,把删除红色的代码 const log4js = require('log4js'), path = require( ...

  3. nodejs之log4js日志记录模块简单配置使用

    在我的一个node express项目中,使用了log4js来生成日志并且保存到文件里,生成的文件如下: 文件名字叫:access.log 如果在配置log4js的时候允许了同时存在多个备份log文件 ...

  4. nodejs(log4js)服务中应用splunk进行Log存储、搜索、分析、监控、警告

    标题党,等博主这个月的知识库上传之后再来更新博文

  5. NodeJs相关系列文章

    1.图片上传之FileAPI与NodeJs 2.NodeJs之调试 3.CentOS下使用NVM 4.NodeJs之进程守护 5.Ubuntu下使用nvm 6.NodeJs之pm2 7.NodeJs之 ...

  6. openshift 容器云从入门到崩溃之八《日志聚合》

    日志可以分为两部分 业务日志 业务日志一般是要长期保留的,以供以后有问题随时查询,elk是现在比较流行的日志方案,但是容器日志最好不要落地所以不能把logstash客户端包在容器里面 可以使用logs ...

  7. 玩转Nodejs日志管理log4js(转)

    转自:http://blog.fens.me/nodejs-log4js/ 前言 日志对任何的应用来说都是至关重要的.在Nodejs中使用express框架并没有自带的日志模块,我们可以选择log4j ...

  8. koa2+log4js+sequelize搭建的nodejs服务

    主要参考http://www.jianshu.com/p/6b816c609669这篇文章 npm安装使用国内taobao镜像,速度更快些 npm --registry https://registr ...

  9. nodejs日志管理log4js

    常用的2种配置: 1.按文件大小分片,备份若干数量的文件 var log4js = require('log4js'); log4js.configure({ "appenders" ...

随机推荐

  1. jQuery动画-圣诞节礼物

    ▓▓▓▓▓▓ 大致介绍 下午看到了一个送圣诞礼物的小动画,正好要快到圣诞节了,就动手模仿并改进了一些小问题 原地址:花式轮播----圣诞礼物传送 思路:动画中一共有五个礼物,他们平均分布在屏幕中,设置 ...

  2. PHP-----文件系统的交互

    本文讲解php中于文件交互中所使用的函数 代码示例 <html> <head> <title> File Detail </title> </he ...

  3. Git小技巧 - 指令别名及使用Beyond Compare作为差异比较工具

    前言 本文主要写给使用命令行来操作Git的用户,用于提高Git使用的效率.至于使用命令还是GUI(Tortoise Git或VS的Git插件)就不在此讨论了,大家根据自己的的喜好选择就好.我个人是比较 ...

  4. Android—简单的仿QQ聊天界面

    最近仿照QQ聊天做了一个类似界面,先看下界面组成(画面不太美凑合凑合呗,,,,):

  5. 一个简单的网站web项目的详解

    有不对的术语,或者不好理解的部分,欢迎大家批评指正,谢谢大家! 近期做的网站web项目,实现登录功能,查询功能.首先把这个项目分为几个模块来处理,当前用户模块,历史用户模块,历史记录模块,数据库模块, ...

  6. AutoMapper使用中的问题

    指定值只会执行一次 public class MomanBaseProfile : Profile { public MomanBaseProfile() { CreateMap<Request ...

  7. CacheManager:–个通用缓存接口抽象类库

    CacheManager是–个缓存通用接口抽象类库,它支持各种高速缓存提供者,例如Memcache,Redis,并且有许多先进的功能特性.具体可以访问官方网站  http://cachemanager ...

  8. Hadoop4 利用VMware搭建自己的hadoop集群

    前言:       前段时间自己学习如何部署伪分布式模式的hadoop环境,之前由于工作比较忙,学习的进度停滞了一段时间,所以今天抽出时间把最近学习的成果和大家分享一下.       本文要介绍的是如 ...

  9. .net的简易多线程处理

    这篇文章是对几年前写的<Task及其异常处理的若干事项>的一些狗尾续貂的补充. 更简单的写法 几年前写的那篇文章很详细地描述了.net用Task对线程进行封装的相关技术.开一个新的线程去执 ...

  10. 我的公司培训讲义(1):.NET开发规范教程

    这是1年多以前我在公司所做讲座的讲义,现在与园友们分享,欢迎拿去使用.一起讨论.文中有若干思考题,对园友们是小菜一碟.另有设计模式讲义一篇,随后发布.博文上了首页,感谢博客园团队推荐,也感谢所有园友的 ...