生成带有socketlog的镜像
1.准备一个空容器
docker run -d -p 8087:80 -v /data/svn_data/with-socketlog:/var/www/html -v /data/logs:/data/logs --name with-socketlog registry.cn-beijing.aliyuncs.com/base-doing/centos-nginx-phalcon-stdout:latest
2.进入容器,进行安装
docker ps -a 查看容器ID
docker exec -it e4089619e4ee bash 进入容器
cp -r SocketLog-master/ /home (SocketLog-master目录放在了/data/svn_data/with-socketlog里面,所以这直接用)
cp -r node-v10.15.1-linux-x64/ /home(SocketLog-master目录放在了/data/svn_data/node-v10.15.1-linux-x64里面,所以这直接用)
cd /home/
ln -s /home/node-v10.15.1-linux-x64/bin/node /usr/bin/
node -v
ln -s /home/node-v10.15.1-linux-x64/bin/npm /usr/bin/
npm -v
nohup node /home/SocketLog-master/server/index.js > /dev/null & (后台运行socketlog)
ps aux | grep node
3.退出容器,提交安装有socketlog的容器
exit
docker commit e4089619e4ee liweiwei/with-socketlog
4.拉取刚刚生成的镜像,测试socketlog功能
docker run -d -p 8088:80 -p1229:1229 -v /data/svn_data/with-socketlog:/var/www/html -v /data/logs:/data/logs --name socketlogtest liweiwei/with-socketlog (注意绑定1229端口哦)
5.进入镜像,运行socketlog
docker exec -it 7c731cd3b702 bash
nohup node /home/SocketLog-master/server/index.js > /dev/null &
6.程序调用试试,将下面代码放到入口文件
if(!function_exists(‘slog’)){
include ‘/home/SocketLog-master/php/slog.function.php’;
//配置
slog(array(
'host' => 'localhost',//websocket服务器地址,默认localhost
'optimize' => true,//是否显示利于优化的参数,如果运行时间,消耗内存等,默认为false
'show_included_files' => true,//是否显示本次程序运行加载了哪些文件,默认为false
'error_handler' => true,//是否接管程序错误,将程序错误显示在console中,默认为false
'force_client_ids' => array(//日志强制记录到配置的client_id,默认为空,client_id必须在allow_client_ids中
'with-so',
//'client_02',
),
'allow_client_ids' => array(//限制允许读取日志的client_id,默认为空,表示所有人都可以获得日志。
'with-so',
//'client_02',
//'client_03',
),
),'config');//输出日志
}
slog(’-----hello world--------’);
slog(‘msg’,‘log’); //一般日志
slog(‘msg’,‘error’); //错误日志
slog(‘msg’,‘info’); //信息日志
slog(‘msg’,‘warn’); //警告日志
slog(‘msg’,‘trace’);// 输入日志同时会打出调用栈
slog(‘msg’,‘alert’);//将日志以alert方式弹出
slog(‘msg’,‘log’,‘color:red;font-size:20px;’);//自定义日志的样式,第三个参数为css样式
7.浏览器下载socketlog扩展,配置好client_id