web-dev-qa-db-ja.com

ノードjsのlog4jsを使用してファイルにログを書き込みます

私のコードは:

log4js.loadAppender('file');
log4js.addAppender(log4js.appenders.file('logs/cheese.log'), 'cheese');
logger.setLevel('DEBUG');

logger.trace('Entering cheese testing');
logger.debug('Got cheese.');
logger.info('Cheese is Gouda.');
logger.warn('Cheese is quite smelly.');
logger.error('Cheese is too ripe!');
logger.fatal('Cheese was breeding ground for listeria.');

「チーズ」という名前のファイルを作成していますが、その中には何もありません。その中にコンテンツを書く方法は?

13
Mahendra

このソリューションは、ログフォルダーと3つのファイルerror.log、debug.log、およびinfo.logをログと一緒にurフォルダーログに作成するのに役立ちます。私のために働いた。ありがとう。

var log4js = require('log4js'); // include log4js

log4js.configure({ // configure to use all types in different files.
    appenders: [
        {   type: 'file',
            filename: "/logs/error.log", // specify the path where u want logs folder error.log
            category: 'error',
            maxLogSize: 20480,
            backups: 10
        },
        {   type: "file",
            filename: "/logs/info.log", // specify the path where u want logs folder info.log
            category: 'info',
            maxLogSize: 20480,
            backups: 10
        },
        {   type: 'file',
            filename: "/logs/debug.log", // specify the path where u want logs folder debug.log
            category: 'debug',
            maxLogSize: 20480,
            backups: 10
        }
    ]
});

var loggerinfo = log4js.getLogger('info'); // initialize the var to use.
var loggererror = log4js.getLogger('error'); // initialize the var to use.
var loggerdebug = log4js.getLogger('debug'); // initialize the var to use.

loggerinfo.info('This is Information Logger');
loggererror.info('This is Error Logger');
loggerdebug.info('This is Debugger');
13
Vaibhav Magon

上記のコードにはロガー宣言がありません:var logger = log4js.getLogger('cheese');という行を追加してください

コードのブロック全体は次のようになります。

var log4js = require('log4js');

log4js.loadAppender('file');
log4js.addAppender(log4js.appenders.file('logs/cheese.log'), 'cheese');

var logger = log4js.getLogger('cheese');

logger.setLevel('DEBUG');
logger.trace('Entering cheese testing');
logger.debug('Got cheese.');
logger.info('Cheese is Gouda.');
logger.warn('Cheese is quite smelly.');
logger.error('Cheese is too ripe!');
logger.fatal('Cheese was breeding ground for listeria.');

参考

9
twinkle

Log4jsには、マルチファイル構成の機能があります。 ここを参照してください

log4js.configure({
  appenders: {
    out: { type: 'stdout' },
    afile: { type: 'multiFile', base: 'logs/', property: 'categoryName', extension: '.log' }
  },
  categories: {
    default: { appenders: ['out'], level: 'info' },
    tofile: { appenders: ['afile'], level: 'debug' }
  }
});

次に、ファイルへのログインを開始しますlogs/xyz.log

const xyzlog = log4js.getLogger('tofile.xyz');
xyzlog.info('Hello!');
0
CodeKid

バージョン2.x。

あなたはこのようなことをする必要があるでしょう:

var log4js = require('log4js');
log4js.configure({
  appenders: { 'file': { type: 'file', filename: 'logs/cheese.log' } },
  categories: { default: { appenders: ['file'], level: 'debug' } }
});

var logger = log4js.getLogger('cheese');

logger.setLevel('DEBUG');
logger.trace('Entering cheese testing');
logger.debug('Got cheese.');
logger.info('Cheese is Gouda.');
logger.warn('Cheese is quite smelly.');
logger.error('Cheese is too ripe!');
logger.fatal('Cheese was breeding ground for listeria.');

ログメッセージのプロパティ(上記のファイル名など)に基づいて動的にファイルを作成する場合は、 multiFileアペンダー を確認してください。

0
slorenzo