- <?php
- /**
- * 记录用于进行BI数据统计的日志类
- * @author chenjianbin
- * @version 1.0
- */
- class Logger {
- // 定义操作类型常量
- /**
- * 首次关注
- */
- const OPT_FIRST_FOCUS = 1;
- /**
- * 取消关注
- */
- const OPT_CANCEL_FOCUS = 2;
- /**
- *首次绑定手机
- */
- const OPT_FIRST_BIND = 3;
- /**
- * 取消绑定手机
- */
- const OPT_CANCEL_BIND = 4;
- /**
- * 发送消息
- */
- const OPT_SEND_MSG = 5;
- /**
- * 重新关注
- */
- const OPT_REPEAT_FOCUS = 6;
- /**
- *重新绑定手机
- */
- const OPT_REPEAT_BIND = 7;
- // 定义交互类型常量
- /**
- * 发送文本
- */
- const INTACT_TEXT_MSG = 1;
- /**
- * 点击菜单
- */
- const INTACT_CLICK_MENU = 2;
- /**
- * 发送图片
- */
- const INTACT_PIC_MSG = 3;
- /**
- * 发送视频
- */
- const INTACT_VIDEO_MSG = 4;
- /**
- * 发送语音
- */
- const INTACT_AUDIO_MSG = 5;
- /**
- * 发送关键词
- */
- const INTACT_KEYWORD = 6;
- // 定义活动类型常量
- /**
- * 抽奖
- */
- const CAMP_LOTTERY = 1;
- /**
- * 调研
- */
- const CAMP_SURVEY = 2;
- /**
- * 晒图
- */
- const CAMP_SHOWPIC = 3;
- /**
- * 红包
- */
- const CAMP_RED_PACK = 4;
- /**
- * 转发红包
- */
- const CAMP_TRANS_RED_PACK = 5;
- /**
- * 刮刮卡
- */
- const CAMP_SCRATCH_CARD = 6;
- /**
- *拆礼盒
- */
- const CAMP_OPEN_GIFT = 7;
- /**
- * 预约
- */
- const CAMP_APPOINTMENT = 8;
- /**
- * 秒杀
- */
- const CAMP_SECKILL = 9;
- /**
- * 团购
- */
- const CAMP_GROUPON = 10;
- /**
- * 组团团购
- */
- const CAMP_GROUP_BUY = 11;
- /**
- * 征集
- */
- const CAMP_COLLECT = 12;
- /**
- * 兑奖模板
- */
- const CAMP_EXPIRY = 13;
- /**
- * 日志路径
- * @access private
- * @var string
- */
- private $_log_path;
- /**
- * 系统分支
- * @access private
- * @var string
- */
- private $_branch;
- /**
- * 商户id
- * @access private
- * @var int
- */
- private $_merchant_id;
- /**
- * 商户代码
- * @access private
- * @var string
- */
- private $_merchant_code;
- /**
- * 用户id
- * @access private
- * @var int
- */
- private $_userid;
- /**
- * 用户openid
- * @access private
- * @var string
- */
- private $_openid;
- /**
- * 用户电话号码
- * @access private
- * @var string
- */
- private $_phone;
- function __construct() {}
- /**
- * 设置日志路径
- * @access public
- * @param string $log_path 日志路径
- */
- public function set_log_path($log_path) {
- $this->_log_path = $log_path;
- }
- /**
- * 基本参数设置
- * @access public
- * @param string $branch 分支
- * @param int $merchant_id 商户id
- * @param string $merchant_code 商户代码
- * @param int $userid 用户id
- * @param string $openid 用户openid
- * @param string $phone 手机号码
- */
- public function set_base_params($branch, $merchant_id, $merchant_code, $userid, $openid, $phone) {
- $this->_branch = $branch;
- $this->_merchant_id = $merchant_id;
- $this->_merchant_code = $merchant_code;
- $this->_userid = $userid;
- $this->_openid = $openid;
- $this->_phone = $phone;
- }
- /**
- * 用户操作日志
- * @access public
- * @param string $opt_code 操作代码
- * @param string $act_code 交互代码
- */
- public function operate($opt_code, $act_code) {
- $ctime = date('YmdHis');
- $log_arr = array(
- $this->_branch,
- $this->_merchant_id,
- $this->_merchant_code,
- $this->_userid,
- $this->_openid,
- $this->_phone,
- $opt_code,
- $ctime,
- $act_code
- );
- $line = implode('|', $log_arr);
- $this->_write_log('operate', $line, $date);
- }
- /**
- * 用户访问日志
- * @access public
- * @param string $user_type 用户类型 是否粉丝用户 0/1
- * @param int $visit_src 访问来源 1.内部访问;2.外部访问
- * @param string $page_title 页面标题
- * @param string $visit_url 访问url
- */
- public function visit($user_type, $visit_src, $page_title, $visit_url) {
- $ctime = date('YmdHis');
- $log_arr = array(
- $this->_branch,
- $this->_merchant_id,
- $this->_merchant_code,
- $this->_userid,
- $this->_openid,
- $phone->_phone,
- $user_type,
- $visit_src,
- $page_title,
- $visit_url,
- $ctime
- );
- $line = implode('|', $log_arr);
- $this->_write_log('visit', $line, $date);
- }
- /**
- * 活动记录日志
- * @access public
- * @param string $user_type 用户类型
- * @param int $visit_src 访问来源 1.内部访问;2.外部访问
- * @param string $activity_id 活动id
- * @param string $activity_url 活动url
- * @param string $activity_title 活动标题
- * @param string $activity_type 活动类型
- * @param string $activity_status 活动状态
- * @param string $send_userid 发起分享的用户id
- * @param string $rece_userid 接受分享的用户id
- * @param string $share_num 分享生成的唯一序列号
- */
- public function activity($user_type, $visit_src, $activity_id, $activity_url, $activity_title, $activity_type, $activity_status, $send_userid, $rece_userid, $share_num) {
- $ctime = date('YmdHis');
- $log_arr = array(
- $this->_branch,
- $this->_merchant_id,
- $this->_merchant_code,
- $this->_userid,
- $user_type,
- $this->_openid,
- $this->_phone,
- $visit_src,
- $activity_id,
- $activity_url,
- $activity_title,
- $activity_type,
- $activity_status,
- $send_userid,
- $rece_userid,
- $share_num,
- $ctime
- );
- $line = implode('|', $log_arr);
- $this->_write_log('activity', $line, $date);
- }
- /**
- * 菜单统计日志
- * @access public
- * @param string $menu_key 菜单key
- * @param string $menu_name 菜单名称
- * @param string $parent_name 父菜单名称
- */
- public function menu($menu_key, $menu_name, $parent_name) {
- $ctime = date('YmdHis');
- $log_arr = array(
- $this->_branch,
- $this->_merchant_id,
- $this->_merchant_code,
- $this->_userid,
- $this->_openid,
- $this->_phone,
- $menu_key,
- $menu_name,
- $parent_name,
- $ctime
- );
- $line = implode('|', $log_arr);
- $this->_write_log('menu', $line, $date);
- }
- /**
- * 关键词统计日志
- * @access public
- * @param string $keyword 关键词
- */
- public function keyword($keyword) {
- $ctime = date('YmdHis');
- $log_arr = array(
- $this->_branch,
- $this->_merchant_id,
- $this->_merchant_code,
- $this->_userid,
- $this->_openid,
- $this->_phone,
- $keyword,
- $ctime
- );
- $line = implode('|', $log_arr);
- $this->_write_log('keyword', $line, $date);
- }
- /**
- * 二维码统计日志
- * @access public
- * @param int $qrcode_id 二维码id
- * @param string $desc 二维码描述
- * @param int $qrcode_type 二维码类型 1.扫码进入;2.扫码关注
- */
- public function qrcode($qrcode_id, $desc, $qrcode_type) {
- $ctime = date('YmdHis');
- $log_arr = array(
- $this->_branch,
- $this->_merchant_id,
- $this->_merchant_code,
- $this->_userid,
- $this->_openid,
- $this->_phone,
- $qrcode_id,
- $desc,
- $qrcode_type
- );
- $line = implode('|', $log_arr);
- $this->_write_log('qrcode', $line, $date);
- }
- /**
- * 获取服务器端IP地址
- * @access public
- * @return string
- */
- public function get_server_ip() {
- if (isset($_SERVER)) {
- if($_SERVER['SERVER_ADDR']) {
- $server_ip = $_SERVER['SERVER_ADDR'];
- } else {
- $server_ip = $_SERVER['LOCAL_ADDR'];
- }
- } else {
- $server_ip = getenv('SERVER_ADDR');
- }
- return $server_ip;
- }
- /**
- * 写日志
- * @access private
- * @param string $log_type 日志类型
- * @param string $line 日志内容
- * @param string $date 日志日期
- */
- private function _write_log($log_type, $line, $date) {
- $dir = dirname($this->_log_path);
- // 创建目录
- if ( !file_exists($dir) ) {
- mkdir($dir, 0777);
- }
- // 获取服务器ip
- $ip = $this->get_server_ip();
- $filename = "{$this->_log_path}/{$this->_merchant_code}_{$log_type}_{$ip}_{$date}.log";
- @file_put_contents($filename, $line."\\n", FILE_APPEND);
- }
- }
- //该片段来自于http://www.codesnippet.cn/detail/1112201411240.html
来源: http://www.codesnippet.cn/detail/1112201411240.html