1 /**
2 * npm install log4js
3 * 源码及文档地址:https://github.com/nomiddlename/log4js-node
4 */
5 var log4js = require('log4js');
6
7 /**
8 * 第一种:
9 * configure方法为配置log4js对象,内部有levels、appenders、categories三个属性
10 * levels:
11 * 配置日志的输出级别,共ALL<TRACE<DEBUG<INFO<WARN<ERROR<FATAL<MARK<OFF八个级别,default level is OFF
12 * 只有大于等于日志配置级别的信息才能输出出来,可以通过category来有效的控制日志输出级别
13 * appenders:
14 * 配置文件的输出源,一般日志输出type共有console、file、dateFile三种
15 * console:普通的控制台输出
16 * file:输出到文件内,以文件名-文件大小-备份文件个数的形式rolling生成文件
17 * dateFile:输出到文件内,以pattern属性的时间格式,以时间的生成文件
18 * replaceConsole:
19 * 是否替换控制台输出,当代码出现console.log,表示以日志type=console的形式输出
20 *
21 */
22
23 log4js.configure({
24 levels: {
25 'log_file' : 'info'
26 },
27 appenders : [
28 {
29 type : 'console',
30 category: "console"
31 },
32 {
33 type : 'stdout'
34 },
35 {
36 type : 'file',
37 filename: __dirname + '/logs/test.log',//文件目录,当目录文件或文件夹不存在时,会自动创建
38 maxLogSize : 10,//文件最大存储空间,当文件内容超过文件存储空间会自动生成一个文件test.log.1的序列自增长的文件
39 backups : 3,//default value = 5.当文件内容超过文件存储空间时,备份文件的数量
40 //compress : true,//default false.是否以压缩的形式保存新文件,默认false。如果true,则新增的日志文件会保存在gz的压缩文件内,并且生成后将不被替换,false会被替换掉
41 encoding : 'utf-8',//default "utf-8",文件的编码
42 category : 'log_file'
43 },
44 {
45 type: "dateFile",
46 filename: __dirname + '/logs/dateFileTest',//您要写入日志文件的路径
47 alwaysIncludePattern: true,//(默认为false) - 将模式包含在当前日志文件的名称以及备份中
48 //compress : true,//(默认为false) - 在滚动期间压缩备份文件(备份文件将具有.gz扩展名)
49 pattern: "-yyyy-MM-dd-hh.log",//(可选,默认为.yyyy-MM-dd) - 用于确定何时滚动日志的模式。格式:.yyyy-MM-dd-hh:mm:ss.log
50 encoding : 'utf-8',//default "utf-8",文件的编码
51 category:"log_date",
52 }
53 ],
54 replaceConsole: true
55 });
56
57 /**
58 * 第二种
59 * appenders:
60 * 一个JS对象,key为上面的category,value是一些其他属性值
61 * categories:
62 * default表示log4js.getLogger()获取找不到对应的category时,使用default中的日志配置
63 *
64 */
65 /*
66 log4js.configure(
67 {
68 appenders: {
69 file: {
70 type : 'file',
71 filename: __dirname + '/logs/test.log',//文件目录,当目录文件或文件夹不存在时,会自动创建
72 maxLogSize : 10,//文件最大存储空间,当文件内容超过文件存储空间会自动生成一个文件test.log.1的序列自增长的文件
73 backups : 3,//当文件内容超过文件存储空间时,备份文件的数量
74 //compress : true,//是否以压缩的形式保存新文件,默认false。如果true,则新增的日志文件会保存在gz的压缩文件内,并且生成后将不被替换,false会被替换掉
75 encoding : 'utf-8',//default "utf-8",文件的编码
76 category : 'log_file'
77 numBackups: 5, // keep five backup files
78 compress: true, // compress the backups
79 encoding: 'utf-8',
80 },
81 dateFile: {
82 type: 'dateFile',
83 filename: 'more-important-things.log',
84 pattern: 'yyyy-MM-dd-hh',
85 compress: true
86 },
87 out: {
88 type: 'stdout'
89 }
90 },
91 categories: {
92 default: { appenders: ['file', 'dateFile', 'out'], level: 'trace' }
93 }
94 }
95 );
96 */
97 var logger = log4js.getLogger('log_file');
98 var logger1 = log4js.getLogger('log_date');
99
100 logger.info("this is a log4js test1111111111111!");
101 logger1.info("this is a log4js test1111111111111!");
102 console.log("test test!!");
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有