pablosanches/php-websocket-logger
Composer 安装命令:
composer require pablosanches/php-websocket-logger
包简介
PSR3 LoggerInterface implementation with websocket support for real-time log monitoring.
README 文档
README
PSR3 LoggerInterface implementation with websocket support for real-time log monitoring.
Using
composer require pablosanches/php-websocket-logger
PHP
<?php require __DIR__ . '/vendor/autoload.php'; use PabloSanches\Logger; Logger::info('Message info here - {variable}', array('variable' => 'changed')); Logger::critical('Message critical here - {variable}', array('variable' => 'changed'));
NODEJS
const server = require('http').createServer(); const io = require('socket.io')(server); const logger = require('winston'); const port = 1337; const token = 'PABLO-TOKEN'; // Logger config logger.remove(logger.transports.Console); logger.add(logger.transports.Console, { colorize: true, timestamp: true }); logger.info('SocketIO > listening on port ' + port); // set up initialization and authorization method io.use(function (socket, next) { let auth = socket.request.headers.authorization; if(auth) { const token = auth.replace("Bearer ", ""); logger.info("auth token", token); return next(); } else { return next(new Error("no authorization header")); } }); io.on('connection', function (socket){ logger.info('SocketIO > Connected socket ' + socket.id); logger.info("X-My-Header", socket.handshake.headers['x-my-header']); socket.on('logger_emmiter', function (params) { if (params['token'] !== token) { logger.error('Invalid token!'); } else { logger.info('Received a log event. Log type:' + params['level']); logger.info('LOG Message: ' + params['message']); logger.info('LOG Token: ' + params['token']); } }); socket.on('disconnect', function () { logger.info('SocketIO > Disconnected socket ' + socket.id); }); }); server.listen(port);
统计信息
- 总下载量: 7
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2021-08-26