Il s'avère que vous puede remplacer les fonctions de la console en haut du fichier app.js, et faire en sorte que cela prenne effet dans tous les autres modules. J'ai obtenu des résultats mitigés parce qu'un de mes modules est bifurqué en tant que child_process
. Une fois que j'ai copié la ligne en haut de ce fichier également, tout fonctionne.
Pour mémoire, j'ai installé le module cachet de la console ( npm install console-stamp --save
), et ajouté cette ligne en haut de app.js et childProcess.js :
// add timestamps in front of log messages
require('console-stamp')(console, '[HH:MM:ss.l]');
Mon problème maintenant était que le :date
du logger connect utilise le format UTC, plutôt que celui que j'utilise dans les autres appels de la console. Cela a été facilement corrigé en enregistrant mon propre format d'heure (et, par effet secondaire, en exigeant l'utilisation de l'attribut dateformat
module qui console stamp
livré avec, plutôt que d'en installer un autre) :
// since logger only returns a UTC version of date, I'm defining my own date format - using an internal module from console-stamp
express.logger.format('mydate', function() {
var df = require('console-stamp/node_modules/dateformat');
return df(new Date(), 'HH:MM:ss.l');
});
app.use(express.logger('[:mydate] :method :url :status :res[content-length] - :remote-addr - :response-time ms'));
Maintenant, mes fichiers journaux sont organisés (et mieux encore, analysables) :
[15:09:47.746] staging server listening on port 3000
[15:09:49.322] connected to database server xxxxx successfully
[15:09:52.743] GET /product 200 - - 127.0.0.1 - 214 ms
[15:09:52.929] GET /stylesheets/bootstrap-cerulean.min.css 304 - - 127.0.0.1 - 8 ms
[15:09:52.935] GET /javascripts/vendor/require.js 304 - - 127.0.0.1 - 3 ms
[15:09:53.085] GET /javascripts/product.js 304 - - 127.0.0.1 - 2 ms
...