Afin d'exporter/imprimer le résultat console.log(...)
à la page Web, vous pouvez remplacer console.log
et le faire émettre un message avant qu'il ne soit imprimé dans la console du serveur. Ensuite, le message sera émis au navigateur en utilisant Web Socket et imprimé/utilisé dans la page.
Exemple de code ci-dessous.
côté serveur:
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var port = process.env.PORT || 3000;
var events = require('events');
var eventEmitter = new events.EventEmitter();
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
eventEmitter.on('logging', function(message) {
io.emit('log_message', message);
});
http.listen(port, function(){
console.log('listening on *:' + port);
});
// Override console.log
var originConsoleLog = console.log;
console.log = function(data) {
eventEmitter.emit('logging', data);
originConsoleLog(data);
};
// code for test.
setInterval(function() {
console.log('X: ' + Math.random());
}, 2000);
côté navigateur:
<!doctype html>
<html>
<head>
<title>Example</title>
</head>
<body>
<ul id="messages"></ul>
<script src="https://cdn.socket.io/socket.io-1.2.0.js"></script>
<script src="https://code.jquery.com/jquery-1.11.1.js"></script>
<script>
$(function() {
var socket = io();
socket.on('log_message', function(msg){
$('#messages').append($('<li>').text(msg));
});
});
</script>
</body>
</html>
Pourquoi voulez-vous imprimer les journaux de serveur vers une page Web côté client? –
Parce que je veux les utiliser dans PRTG (outil de surveillance) – user3130478
Essayez d'utiliser des sockets pour ce genre de choses. –