Skip to content

Log platform base on my repository:Laravel5.2-AdminLTE-RBAC

License

Notifications You must be signed in to change notification settings

forgottener/polyLog

Repository files navigation

polyLog

说明

  • 日志统一接收记录管理平台
  • 由于考虑想做成服务化的日志平台,固采用RPC的方式提供方法给各个项目调用,不局限于PHP的项目
  • 管理后台的权限控制已经实现,后台代码来自我的项目Laravel5.2-AdminLTE-RBAC

环境依赖

  • PHP安装swoole扩展
  • mongodb

使用方式

  • 在项目里开启2个artisan命令:
php artisan swoole:server

php artisan hprose:server
  • 以其他PHP项目为例,在任何PHP项目中,composer引入hprose/hprose,日志的内容请遵循Monolog的定义来实现,写个公共的方法调用polyLog/app/Console/Commands/HproseServer.php里写好的方法polyLog()即可. $log数组的结构请务必参考Monolog的定义来实现,这样方便统计查看. polyLog()方法会返回一个唯一的log_id便于追踪; 如果是链路追踪,系统支持在$log中指定log_id.
<?php
function platformLog($log)
{
    try {
        $client = new \Hprose\Socket\Client('tcp://127.0.0.1:1314', false);
        return $client->polyLog($log);
    } catch (\Exception $e) {
        //TODO:需要上报平台日志服务连接不上
        return true;
    }
}

$log = array(
            "message" => "Exception: wwww in /home/Code/illegal_lumen/app/Http/Controllers/Service/CarSyncController.php:20",
            "context" => array(
                "SERVER_ADDR" => "192.168.56.102"
            ),
            "level" => 400,
            "level_name" => "ERROR",
            "channel" => "lumen",
            "extra" => array(
                "url" => "/illegal/car/sync/3.0",
                "ip" => "192.168.56.1",
                "http_method" => "GET",
            )
        );
$log_id = platformLog($log);        
  • 其他语言项目均只要实现客户端的逻辑来调用polyLog,hprose支持多种语言的

UI展示

  • 后台首页 image
  • 权限控制 image
  • 平台日志 image
  • Statistics image
  • 各平台日志 image image

About

Log platform base on my repository:Laravel5.2-AdminLTE-RBAC

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages