控制台打印日志信息的方法

  介绍

这篇文章主要介绍控制台打印日志信息的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

我们首先创建如下文件:

//,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

控制台打印日志信息的方法