log4js+nodejs如何实现日志功能,打印到对应的文件当中?

时间:2024-03-08 12:12:00

  我相信您进来找,一定是不知道如何引入对应的地方,导致无法实现功能因为网上代码都一样,

  那就详细听小生一讲,这里讲解全部步骤,谢谢。

1.下载 log4js 日志模板

(1)进入您想实现功能的项目文件夹中,例如:

#1.在桌面创建一个文件夹(日志功能)

 

#2.进入该文件夹,在上面路劲条位置,输入 “cmd” 再按 “回车键”,在该文件夹下进入终端。

#3.在终端内输入:npm i -s log4js  

 终端就会自动下载log4js,可见情况如下

  下载完成后出现显示对应版本信息

2.在该项目文件(日志功能)下,创建log.js 和 调用位置(本例子test.js)

  先看看文件目录:

  

  (1)创建log.js,代码如下:

var log4js = require(\'log4js\');//引入刚刚下载的log4js日志模板


log4js.configure({
    appenders:{
        console:{type:\'console\'},
        file:{
            type:\'file\',
            filename:\'all.log\',
            layout:{
                type:\'pattern\',
                pattern:\'%d{yyyyMMdd hh:mm:ss} {%p} %m\'
            }
        }
    },
    categories:{
        default:{
            appenders:[\'console\',\'file\'],
            level:\'debug\'      
        }
    }
})


module.exports=log4js.getLogger();//暴露log4js模板,其他功能点才能应用

  讲解:

   1.configure():对日志输出进行配置
   getlogger(): 获取logger对象,使用logger对象进行各级别的日志打印

   appenders:主要定义以什么样的方式输出(定义输出的位置)
   categories:定义日志输出的规则,然后调用之前定义好的appenders进行输出(定义输出的规则)

   2.其中设置level的级别,由低到高有,本例子为:level:\'debug\'

    trace->debug->info->warn->error->fatal

    这里设置了级别,日志输出只有在设置级别之上才能输出。

      例如:我这里假设设置了level:\'error\'

         那么我在后面引用的时候(logger.info()部分),只是用了Info,那么将无法打印出日志

  (2)创建text.js引用前面模板的地方

      讲解:

        var logger=require(\'./log.js\')

        把log.js暴露出来的封装模板进行引入,放在需要引入的文件声明变量的位置。

        logger.info(需要输出的日志内容(包括您想要的 字符串/数字/变量))

var logger=require(\'./log.js\')

logger.info(\'管理员小明添加了学生A\')//此处,如果有上面变量可以通过声明引进来就可以实现,比如变量某某管理员添加了某某学生
//其中日志级别只需要到info就行

3.运行该应用文件(text.js)

  (1)在刚才的终端里面输入:node test.js

  

  (2)可见终端已经生成了一段日志,此时也可以在文件夹(日志功能)里面看见有 “all.log”文件,打开可见操作日志保存的内容。

  

 4.另外讲解部分:

  如果您还没懂引入到哪里,那么请看这个

  (1)好比说,我这里有一个在router.js文件里的“添加信息功能模块”,然后在前面引入封装的module(读音:摸