Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 在新的不同文件中使用log4js写入日志?_Node.js_Logging_Log4js Node - Fatal编程技术网

Node.js 在新的不同文件中使用log4js写入日志?

Node.js 在新的不同文件中使用log4js写入日志?,node.js,logging,log4js-node,Node.js,Logging,Log4js Node,我想将日志写入不同的文件 const log4js = require('log4js'); log4js.configure({ appenders: { integra: { type: 'file', filename: './logs/doc.log' } }, categories: { default: { appenders: ['doc'], level: 'error' } } }); const logger = log4js.getLogger('doc')

我想将日志写入不同的文件

const log4js = require('log4js');
log4js.configure({
    appenders: { integra: { type: 'file', filename: './logs/doc.log' } },
    categories: { default: { appenders: ['doc'], level: 'error' } }
});
const logger = log4js.getLogger('doc');

module.exports = logger

根据上面的代码,我只能配置一次日志。但是我想为每个日志动态地编写一个日志文件。在上述情况下,我只能编写一个文件。我需要一种写新日志文件的方法。我想在不同的路径上写入多个日志文件。

使用多文件追加器将日志动态写入多个文件,您的log4js配置如下所示:

  appenders: { integra: {  type: 'multiFile', base: 'logs/', property: 'prop', extension: '.log'} },
其中:

  • 基本:生成的日志文件名的基本部分
  • 属性:用于分割文件的值
  • 扩展名:生成的日志文件名的后缀
  • 下面是一个用于为每个用户创建日志文件的示例:

    const log4js = require('log4js');
    const uuidv1 = require('uuid/v1'); //used for generating random string
    
    log4js.configure({
        appenders: {
          everything: {
            type: 'multiFile', base: 'logs/', property: 'userID', extension: '.log'
          }
        },
        categories: {
          default: { appenders: [ 'everything' ], level: 'debug'}
        }
      });
    
      const userLogger = log4js.getLogger('user');
    
        userLogger.addContext('userID', uuidv1()); 
        userLogger.info('New file created');
        userLogger.addContext('userID', uuidv1());
        userLogger.info('New file created');
    

    您可以创建多个appender和categories,并在写入之前获取相应的记录器。下面将创建三个不同的文件

    const log4js = require('log4js');
    log4js.configure({
        appenders: { integra: { type: 'file', filename: './logs/doc.log' } },
        categories: { default: { appenders: ['doc'], level: 'error' } }
    });
    const logger = log4js.getLogger('doc');
    
    module.exports = logger
    
    const log4js=require('log4js');
    log4js.configure({
    附录:{
    讨厌的:{type:'file',filename:'nasty.log'},
    圆滑:{type:'file',filename:'sleek.log'},
    跟踪器:{type:'file',filename:'tracer.log'},
    },
    类别:{
    默认值:{
    附加器:['sarty'],级别:“error”
    },
    光滑:{
    附加器:['sleek'],级别:“info”
    },
    跟踪器:{
    附加器:['tracer'],级别:“trace”
    }
    }
    });
    const nastyLogger=log4js.getLogger('snaty');
    error(新错误('thisgetloggedinnastylylogger');
    debug('这将不会记录在日志记录器中');
    const sleekLogger=log4js.getLogger('sleek');
    sleekLogger.info('这将被记录在sleekLogger');
    debug('这不会记录在sleek logger中');
    const tracerLogger=log4js.getLogger('tracer');
    tracerLogger.info('这将记录在跟踪记录器中');
    debug('这也将记录在跟踪记录器中');
    
    我可以定义自己的文件夹吗?因为这可能会生成UUID为的文件夹。@Dhiraj Kumar您是否尝试过logger.addContext(“您的属性”,“您的文件名”)?