在我的一个node express项目中,使用了log4js来生成日志并且保存到文件里,生成的文件如下:

文件名字叫:access.log 如果在配置log4js的时候允许了同时存在多个备份log文件,(比如我写的是3个:backup:3)那么从时间最远到最近,会生成access.log.3,

access.log.2,access.log.1,access.log

一、下载安装log4js

在项目根目录下命令行:

window:

npm install log4js

mac(sudo不是必需的,但是不带sudo可能会遇到什么管理权限之类的莫名其妙的问题,所以我习惯mac里都带sudo,下载过程中会要求输入电脑密码):

sudo npm install log4js

下载好了,现在我的项目结构如下:

其中app_simply.js是我的项目的运行文件,是我简单的自己写的一个项目运行文件,只有最基本的功能。不是通过express生成器自动生成的。

二、配置log4js

在app_simply.js中加入以下几句:

var log4js = require('log4js');//加载log4js模块
var express = require('express');
var path = require("path"); var app = express();

//通过configure()配置log4js
log4js.configure({
appenders: [
{type: 'console'}, //控制台输出
{
type: 'file', //文件输出
filename: 'logs/access.log',//输出日志的文件夹/文件名,不会自动生成文件夹,请先自行创建logs文件夹
maxLogSize: 1024*12,//一个文件的大小,超出后会自动新生成一个文件
backups: 3,//备份的文件数量
category: 'normal'
}
],
replaceConsole: true
});
var logger = log4js.getLogger('normal');
logger.setLevel('INFO');//设置输出级别,具体输出级别有6个,见下方说明 app.use(log4js.connectLogger(logger, {level: log4js.levels.INFO}));
app.get("/", function(req, res){
res.send("88888");
});

var server = app.listen(3001, function(){
var host = server.address().address;
var port = server.address().port; console.log('Example app listening at http://%s:%s', host, port);
});
 

log4js的输出级别6个: 从低到高:trace, debug, info, warn, error, fatal

  • logger.trace(‘Entering cheese testing’);
  • logger.debug(‘Got cheese.’);
  • logger.info(‘Cheese is Gouda.’);
  • logger.warn(‘Cheese is quite smelly.’);
  • logger.error(‘Cheese is too ripe!’);
  • logger.fatal(‘Cheese was breeding ground for listeria.’);

输出日志时,高于等于我们自己设置的等级的信息都会输出,比如我设置的是info,到时候info, warn,error,fatal的信息都会输出到文件中

然后跑起我们的服务器,就会生成日志啦!

结束:一个简单的log4js的配置如上。更多用法自己看官方文档和log4js文件夹里的readme.md也可以

最新文章

  1. Jquery揭秘系列:实现$.fn.extend 和$.extend函数
  2. Gvr SDK for Unity 分析(二)
  3. Swift 懒加载(lazy) 和 Objective-C 懒加载的区别
  4. hduoj 4710 Balls Rearrangement 2013 ACM/ICPC Asia Regional Online —— Warmup
  5. Centos6.4版本下搭建LAMP环境
  6. C# json to dynamic object
  7. [Cache] C#操作缓存--CacheHelper缓存帮助类 (转载)
  8. 实验-使用VisualVM或JConsole进行对程序进行性能分析
  9. ajax基本介绍
  10. C# 通过 Quartz .NET 实现 schedule job 的处理
  11. 实战深度学习OpenCV(一):canny边缘检测
  12. 多版本python安装第三方库
  13. 关于apache 开启 ssl https 支持 TLS1.2 的些事
  14. php中memcached的使用
  15. class="no-js"
  16. codeforces 497c//Distributing Parts// Codeforces Round #283(Div. 1)
  17. Docker load与Docker import
  18. [JSOI2009]游戏 二分图博弈
  19. ActiveMQ搭建
  20. Linearization of the kernel functions in SVM(多项式模拟)

热门文章

  1. Jmeter数据库mysql测试说明
  2. tomcat高并发配置调优
  3. QT解决视频透视,有阴影的方法
  4. Java管程解决生产者消费者问题
  5. 编写和运行简单的"Hello World"操作系统内核
  6. git如何生成单个文件的补丁
  7. 搭建ODS的几套解决方案对比
  8. Docker Mysql主从同步配置搭建Demo
  9. (转)一个大牛的acm历程(看着就要颤抖)
  10. 2017 ACM/ICPC 南宁区 网络赛 Overlapping Rectangles