Merge pull request #4 from sornon/master fix(logviewer): Set the encoding utf8
Merge pull request #4 from sornon/master
fix(logviewer): Set the encoding utf8
YOG2 Agent,目前包含日志清理与日志线上查看功能
npm i yog2-agent --save
所有配置均需放置在YOG2 Project根目录下
{ "cron": "0 * * * *", "logs": [{ "name": "app", "path": "log/yog/yog.log.%Y%m%d%H", "reserveDays": 7 }, { "name": "access", "path": "log/access/access.log.%Y%m%d%H", "reserveDays": 7 }, { "name": "app-wf", "path": "log/yog/yog.log.wf.%Y%m%d%H", "reserveDays": 7 }, { "name": "pm2-stdout", "path": "pm2/logs/yog-out.log", "autoRotate": true, "rotatePath": "pm2/logs/yog-out.log.%Y%m%d%H", "reserveDays": 7 }, { "name": "pm2-stderr", "path": "pm2/logs/yog-error.log", "autoRotate": true, "rotatePath": "pm2/logs/yog-error.log.%Y%m%d%H", "reserveDays": 7 }] }
cron
logs
logs[n].name
logs[n].path
%Y%m%d%H
logs[n].reserveDays
logs[n].autoRotate
logs[n].rotatePath
{ "port": "$PORT", "portOffset": 1, "logs": [{ "name": "app", "path": "log/yog/yog.log.%Y%m%d%H" }, { "name": "access", "path": "log/access/access.log.%Y%m%d%H" }, { "name": "app-wf", "path": "log/yog/yog.log.wf.%Y%m%d%H" }, { "name": "pm2-stdout", "path": "pm2/logs/yog-out.log" }, { "name": "pm2-stderr", "path": "pm2/logs/yog-error.log" }, { "name": "pm2-stdout-history", "path": "pm2/logs/yog-out.log.%Y%m%d%H" }, { "name": "pm2-stderr-history", "path": "pm2/logs/yog-error.log.%Y%m%d%H" }] }
port
portOffset
node node_modules/yog2-agent/index.js –ROOT_PATH=[YOG2 Project的根目录]
建议使用 PM2 一类的管理工具启动
在线日志浏览使用 websocket 接口提供服务
function LogViewer(ws, url, opts) { var socket = ws(url, { 'force new connection': true }); socket.on('list', function (data) { opts.onList && opts.onList(data); }); socket.on('connect_error', function (data) { socket.disconnect(); opts.onConnectError && opts.onConnectError(); }); socket.on('connect', function () { socket.emit('list'); }); socket.on('notfound', function (data) { opts.onError && opts.onError({ logName: data.name, cmd: data.cmd }); }); return { close: function () { socket.disconnect(); }, tailLog: function (name, grep, excludeGrep, cb) { var eventID = name + '#tail'; var opts = { name: name, eventID: eventID, grep: grep, excludeGrep: excludeGrep }; socket.emit('tail', opts); socket.on(eventID, cb); return { end: function () { socket.emit('endtail', opts); socket.off(eventID, cb); } }; }, catLog: function (name, from, to, grep, excludeGrep, cb) { var eventID = name + '#' + from.getTime() + '#' + to.getTime(); opts.name = name; opts.from = from; opts.to = to; opts.grep = grep; opts.excludeGrep = excludeGrep; opts.eventID = eventID; socket.emit('cat', opts); socket.once(eventID, cb); } }; }
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802032778号
yog2-agent
YOG2 Agent,目前包含日志清理与日志线上查看功能
Usage
安装
配置
所有配置均需放置在YOG2 Project根目录下
日志清理配置
配置项
cron日志清理的检查时间logs日志清理对象列表logs[n].name日志名称logs[n].path日志路径,支持时间变量%Y%m%d%Hlogs[n].reserveDays保留日志的天数logs[n].autoRotate是否自动切分日志logs[n].rotatePath切分路径,支持时间变量%Y%m%d%H日志浏览配置
配置项
port端口号,支持从环境变量获取portOffset端口号偏移,用于接收服务的端口号后,使用经过偏移的端口提供服务,避免端口冲突logs可供浏览的日志列表logs[n].name日志名称logs[n].path日志路径,支持时间变量%Y%m%d%H启动
node node_modules/yog2-agent/index.js –ROOT_PATH=[YOG2 Project的根目录]
建议使用 PM2 一类的管理工具启动
在线日志浏览接口
在线日志浏览使用 websocket 接口提供服务
前端接口库示例