构建自己的简单的网络日志接口


用途:手机上的脚本的日志可以存储到网络上 不限于一个手机 而是多个手机的日志都可以存储到网络上 供人查看

原理:从脚本处发送信息到网络日志接口  接口接收到了这个信息  根据当前的日期 生成一个log文件吧这个信息存储到该文件内部 当然如果这个log文件已存在就更好  然后 在网络日志查看网页上我们只需要把当天日期的这个log文件的内容都读出来显示在该网页上就完成了整体的操作

问题

1.如果数据量过大 同时写入一个文件会有问题 因为没有使用mysql网络数据库 没法处理并发问题 但是平时的一些日志上重点关注的点的记录足够了 

2.查看日志的代码 可以再多增加一些功能 比如增加综合查询 条件查询来查询出符合要求的日志  不过这不过都是一些字符串查找判断的小问题

3 没有考虑到安全性的问题 只要知道了这个网络日志接口地址 谁都可以发送信息到这里 正常说 应该有一个信息安全的判断 才允许写入到网络日志里面 不过 我们只是做一个简单的网络日志接口 就不高那么麻烦了


网页源码和安卓按键的源码下载地址

https://pan.baidu.com/s/131BT_Xmah2LmDidBzdol8A




网页日志接口代码

<?php
define('CONST_SERVER_TIMEZONE', 'UTC'); //保证不会相差8小时 设置时区
error_reporting(E_ALL ^ E_WARNING ^ E_NOTICE); //显示除去E_WARNING
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>日志接口</title>
</head>
<body>
<?php
//接收从脚本传递来的日志信息 判断当前的日期 把这个日志信息存储到当前日期命名的日志文件里
if (trim($_POST['log_str'])<>""){
    $nowtimefilepath=date("y-m-d",time()).".log";
    $send_str=date("y-m-d",time());
    $send_str=date("Y-m-d H:i:s",time())."----".trim($_POST['log_str'])."\r\n";
    echo file_put_contents($nowtimefilepath,$send_str,FILE_APPEND);//添加模式 不是覆盖
    }else{
        echo "<p>无数据</p>";
    }
?>
</body>
</html>

普通网页日志查看页面的代码(当前我们也可以对这些日志进行筛选 比如提供一定的查询条件 比如查询1号手机的所有日志  查询前几天的日志信息 这些都不难实现 不过是一些简单的字符串匹配而已)

<?php
define('CONST_SERVER_TIMEZONE', 'UTC'); //避免相差8小时
error_reporting(E_ALL ^ E_WARNING ^ E_NOTICE); //显示除去E_WARNING
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>查看特殊log</title>
<style type="text/css">
div {padding: 1px; border: 1px solid #ffcc00; background: #fffff7;margin:5px}
p {padding: 1px; border: 1px solid #bbe1f1; background: #eefaff;margin:2px}
</style>
</head>

<body>
<?php

$nowtimefilepath=date("y-m-d",time()).".log"; //获取今日日期 得到日志文件的路径

//今天的内容显示 读取出今日的日志文件的所有内容存储到数组里面
$lines = file($nowtimefilepath);
echo "<h1>今日:".date("y-m-d",time())."</h1>";
foreach (array_reverse($lines)  as $line) {
 $line = rtrim($line);
     echo "<p>".$line."</p>";
}

//前一天时间的日志  date("Y-m-d",strtotime("-1 day"))
$previoustimefilepath=date("Y-m-d",strtotime("-1 day")).".log";
$lines = file($previoustimefilepath);
echo "<h1>昨日:".date("Y-m-d",strtotime("-1 day"))."</h1>";
foreach (array_reverse($lines) as $line) {
 $line = rtrim($line);
 echo "<p>".$line."</p>";
}
?>
</body>
</html>


安卓按键上的发送网络日志的函数和代码(下面的域名我没有写真实的 保护了)

/*
例子: 
Call 发送网络日志("找不到游戏主界面 无法完成注册操作")
*/
Function 发送网络日志(log_str)
    Dim t,tt,ttt,结果,是否完成操作,post数据
    Dim 网络日志地址接口="http://XXX.XXX.XXX.com/script_log/log_interface.php"    
    //构建要发送的内容  包含了当前手机的标识 执行到哪个账号 要发送的信息内容 组合成1个字符串
    log_str="手机["&cstr(readuiconfig("手机id"))&"]-账号["&cstr(当前账号id)&"]-"&log_str 
    post数据="log_str="&log_str//
    TracePrint url.post(网络日志地址接口,"log_str="&log_str)//以post方式发送
End Function


过渡页面的代码

猜你喜欢

转载自www.cnblogs.com/zjl8455482/p/9328471.html