怎么在node . js中使用控制台输出日志文件

  介绍

这篇文章给大家介绍怎么在节点。js中使用控制台输出日志文件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

首先创建如下文件:

//, index.js      let  fs =,要求(& # 39;fs # 39;);      let  options =, {   ,,旗帜:& # 39;一个# 39;,,,,,,//,追加模式   编码才能:& # 39;use utf8 # 39;,,,//, utf8编码   };      let  stdout =, fs.createWriteStream (& # 39;。/stdout.log& # 39;,,选项);   let  stderr =, fs.createWriteStream (& # 39;。/stderr.log& # 39;,,选项);//,创建记录器   let  logger =, new  console.Console (stdout, stderr);      for  (let 小姐:=,0;,小姐:& lt;, 100;,我+ +),{   logger.log才能(“log  message  ${我}');   logger.error才能(“err  message  ${我}');   }

在上面代码中,我们其实是创建了一个console.Console类的实例,该类需要指定两个参数,即标准输出流和标准错误输出流,正常情况下,实际上是对应了process.stdout和process.stderr,以上的代码中,我们将这两个输出流改为了文件输出流,并指定为文件追加模式,这样即可将日志信息输出到指定的文件中去。运行上面的代码,会生成stdout.log和stderr.log两个文件。

stdout。日志文件内容如下:

log  message  0   log  message  1   log  message  2   log  message  3   log  message  4   log  message  5   log  message  6   log  message  7   log  message  8   log  message  9   log  message  10   …

stderr。日志文件内容如下:

err  message  0   err  message  1   err  message  2   err  message  3   err  message  4   err  message  5   err  message  6   err  message  7   err  message  8   err  message  9   err  message  10   …

看上去信息还比较简单,不像是日志文件的样子,我们或许得为每条日志添加一个时间才行,下面先为日期对象添加一个格式的原型方法:

//,添加格式方法   时间=Date.prototype.format  function (格式),{      if 才能;(格式),{   ,,,format =, & # 39; yyyy-MM-dd  HH: mm: ss # 39;;   ,,}   ,,//才能,用0补齐指定位数   let 才能;padNum =, function (价值,,位数),{   ,,,return 数组(digits 安康;value.toString () .length  +, 1) . join(& # 39; 0 & # 39;), +,价值;   ,,};//才能,指定格式字符   let 才能;cfg =, {   ,,,yyyy:, this.getFullYear(),,,,,,,,,,,,,,//年   ,,,MM:, padNum (this.getMonth(), +, 1,, 2),,,,,,,,,//月   ,,,dd:, padNum (this.getDate(), 2),,,,,,,,,,,,//日   ,,,HH:, padNum (this.getHours(), 2),,,,,,,,,,,//时   ,,,mm:, padNum (this.getMinutes(), 2),,,,,,,,,,//分   ,,,学生:,padNum (this.getSeconds(), 2),,,,,,,,,,//秒   ,,,fff:, padNum (this.getMilliseconds(), 3),,,,,,,//,毫秒   ,,};      return 才能;format.replace (/([a - z] | [a - z])(\ 1) */搞笑,function  (m), {   ,,,return  cfg [m];   ,,});   }

然后再改写前面的主文件:

//, index.js      let  fs =,要求(& # 39;fs # 39;);      let  options =, {   ,,旗帜:& # 39;一个# 39;,,,,,,//,追加模式   编码才能:& # 39;use utf8 # 39;,,,//, utf8编码   };      let  stdout =, fs.createWriteStream (& # 39;。/stdout.log& # 39;,,选项);   let  stderr =, fs.createWriteStream (& # 39;。/stderr.log& # 39;,,选项);//,创建记录器   let  logger =, new  console.Console (stdout, stderr);//,添加格式方法   时间=Date.prototype.format  function (格式),{      if 才能;(格式),{   ,,,format =, & # 39; yyyy-MM-dd  HH: mm: ss # 39;;   ,,}   ,,//才能,用0补齐指定位数   let 才能;padNum =, function (价值,,位数),{   ,,,return 数组(digits 安康;value.toString () .length  +, 1) . join(& # 39; 0 & # 39;), +,价值;   ,,};//才能,指定格式字符   let 才能;cfg =, {   ,,,yyyy:, this.getFullYear(),,,,,,,,,,,,,,//年   ,,,MM:, padNum (this.getMonth(), +, 1,, 2),,,,,,,,,//月   ,,,dd:, padNum (this.getDate(), 2),,,,,,,,,,,,//日   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

怎么在node . js中使用控制台输出日志文件