2012-03-04 8 views
6

Node.jsアプリケーションでLog4jsを使用してログを有効にしました。 私はhttps://github.com/nomiddlename/log4js-nodeからconfigオプションを使用しましたが、正常に動作しています。Log4jsでコンソール印刷を無効にする

ログはログファイルとコンソールに書き込まれます。 私はこれをコンソールに表示したくありません。 これを設定する方法を理解できません。 この愚かな質問をおかけして申し訳ありません。

答えて

1

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()); 
10

使用log4js.clearAppenders()使用したいアペンダを追加する前に:ここで

は私が執筆を終わったコードです。

0

私はこの問題もコンソールベースのユーティリティを構築していました。ユーティリティーがその出力をコンソールに書き出し、ログをファイルに保存しておきたいと思いました。どのように試しても、2つの出力バッファを分離することはできませんでした。誰もがこのかなり古いスレッドつまずくする必要がある場合、(その間?)に注意してください

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'); 
0

があります:

ソリューションはそうのような、log4js.configureコールでコンソールアペンダにカテゴリを追加しました設定によるコンソールのロギングを無効にする可能性もあります。 @see Example on github

それは本当にあなたが達成するために計画されたものを解決するかどうか分からないのですが、確かにあなたはログがそう

0

を行うことで、コンソールから消えるようになりますを設定しながら、

は単に replaceConsole: true を設定しましたこれをどうやって動作させるかは次のとおりです。

問題は、appender configのデフォルトカテゴリが '[all]'です。 log4js.getLogger()

{ 
    appenders: [ 
    { type: 'console', category: '[default]' }, 
    { type: 'file', filename: 'logs/cheese.log', category: 'cheese' } 
    ] 
} 

詳細な説明:

あなたはおそらく/持っていたカテゴリ「[デフォルト]」に、それが唯一のカテゴリアウトで「得」しているロガーに適用されます設定し

:例アペンダの設定

{ 
    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 
関連する問題