我剛剛在我的Node.js應用程序中使用Log4js啓用了日誌記錄。 我已使用https://github.com/nomiddlename/log4js-node的配置選項,它工作正常。在Log4js中禁用控制檯打印
它將日誌寫入日誌文件以及控制檯中。 我不希望將其打印在控制檯中。 無法弄清楚如何配置它。 非常抱歉問這個愚蠢的問題。
我剛剛在我的Node.js應用程序中使用Log4js啓用了日誌記錄。 我已使用https://github.com/nomiddlename/log4js-node的配置選項,它工作正常。在Log4js中禁用控制檯打印
它將日誌寫入日誌文件以及控制檯中。 我不希望將其打印在控制檯中。 無法弄清楚如何配置它。 非常抱歉問這個愚蠢的問題。
在socket.io中,您可以設置一個custom logger.我試着分配一個log4js記錄器,但是這導致了一個錯誤。我懷疑你(和我)將不得不編寫一個包裝器,它將日誌記錄調用傳遞給log4js。
這是我最後寫代碼:
var LogWrapper = function() {
this.logger = log4js.getLogger('socket.io');
};
LogWrapper.prototype.error = function() {
this.logger.error.apply(this.logger, arguments);
};
LogWrapper.prototype.warn = function() {
this.logger.warn.apply(this.logger, arguments);
};
LogWrapper.prototype.info = function() {
this.logger.info.apply(this.logger, arguments);
};
LogWrapper.prototype.debug = function() {
this.logger.debug.apply(this.logger, arguments);
};
io.set('logger', new LogWrapper());
使用log4js.clearAppenders()
將要使用的附加目的地之前。
我有這個問題以及建立一個基於控制檯的實用程序。我希望該實用程序將其輸出寫入控制檯,但將日誌保存在文件中。無論我如何嘗試,我似乎都無法分開兩個輸出緩衝區。
的解決方案是一個類別添加到控制檯的appender在log4js.configure調用,就像這樣:
var log4js = require('log4js');
log4js.configure({
appenders: [
{ type: 'console', category: 'thiswillgotoconsole' },
{ type: 'file', filename: 'myLog.log', category: 'thiswillgotofile' }
]
});
var logger = log4js.getLogger('thiswillgotofile');
logger.setLevel('debug');
logger.debug('thiswillgotofile');
console.log('thiswillgotoconsole');
如果有人應該在此,而舊線絆倒,請注意,(同時?)也可以通過配置禁用日誌記錄控制檯。
只需設置 replaceConsole: true
在配置 @see Example on github
不知道它是否真的可以解決你計劃要達到什麼,但可以肯定你會做日誌從控制檯消失這樣做
下面是我如何得到這個工作:
問題是appender config的默認類別是'[all]'。 設置類別爲「[默認]」,它將僅適用於與「得到」了一個類別伐木工人:log4js.getLogger()
{
appenders: [
{ type: 'console', category: '[default]' },
{ type: 'file', filename: 'logs/cheese.log', category: 'cheese' }
]
}
更多的解釋:
你可能有/有東西看起來像例子中的appender配置
{
appenders: [
{ type: 'console' },
{ type: 'file', filename: 'logs/cheese.log', category: 'cheese' }
]
}
然後您可以通過使用或不使用類別名稱獲得日誌:
var logger = log4js.getLogger();
var cheeseLogger = log4js.getLogger('cheese');
logger.info(1)
cheeseLogger(2)
輸出:
[2016-10-25 15:43:06.225] [INFO] [default] - 1
[2016-10-25 15:43:06.225] [INFO] cheese - 2
日誌/ cheese.log:
[2016-10-25 15:43:06.225] [INFO] cheese - 2