V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cdoco
V2EX  ›  PHP

一个基于 easylogging++ 的 PHP 扩展高性能日志库

  •  2
     
  •   cdoco · 2017-07-07 16:28:09 +08:00 · 2937 次点击
    这是一个创建于 2703 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Easylog

    一个基于 Easylogging++ 的 php 扩展高性能日志库

    安装

    //clone 目录
    git clone https://github.com/cdoco/easylog
    //编译安装
    cd easylog && phpize && ./configure && make && make install
    

    使用

    配置 php.ini

    extension=easylog.so
    
    [easylog]
    //需要配置文件 配置文件的格式见下文
    easylog.config_file = "/data/easylog.conf"
    
    //配置日志级别 目前支持级别: global trace debug fatal error warning verbose info unknown
    easylog.log_level = "info"
    

    快速开始

    <?php
        //设置日志级别
        Easylog::setLevel(Easylog::ERROR);
    
        //自定义格式符
        Easylog::setCustomFormat("%ip", "172.16.2.111");
    
        //设置 logger ID
        //这个 id 必须在配置文件中存在
        $easylog = new Easylog("easylog");
    
        //设置 info 级别的格式
        $easylog->setFormat(Easylog::INFO, "[%datetime{%Y-%M-%d %H:%m:%s}] %logger.%level %ip | %msg");
    
        $easylog->info("info");
        $easylog->warning("warning");
        $easylog->error("error");
        $easylog->debug("debug");
        $easylog->trace("trace");
        $easylog->fatal("fatal");
    
        $zy = new Easylog("zy");
    
        //设置格式化符
        $zy->setFormat(Easylog::GLOBAL, "[%datetime{%Y-%M-%d %H:%m:%s}] %logger.%level | %msg");
    
        //设置是否需要写到文件
        $zy->setToFile(Easylog::GLOBAL, "true");
    
        //设置写到文件的文件名
        $zy->setFileName(Easylog::GLOBAL, "/data/logs/php/zy.log");
    
        $zy->info("info");
        $zy->warning("warning");
    

    配置文件

    -- default // logger id
        * GLOBAL:
            ENABLED                 =   true
            TO_FILE                 =   true
            TO_STANDARD_OUTPUT      =   true
            FORMAT                  =   "[%datetime{%Y-%M-%d %H:%m:%s}] %logger.%level | %msg"
            FILENAME                =   "/data/logs/php/log_%datetime{%Y%M%d}.log"
            MILLISECONDS_WIDTH      =   3
            PERFORMANCE_TRACKING    =   false
            MAX_LOG_FILE_SIZE       =   1048576
            LOG_FLUSH_THRESHOLD     =   0
    
        * TRACE:
            FILENAME                =   "/data/logs/php/trace_%datetime{%Y%M%d}.log"
    
        * DEBUG:
            FILENAME                =   "/data/logs/php/debug_%datetime{%Y%M%d}.log"
    
        * FATAL:
            ENABLED                 =   false 
    
        * ERROR:
            FILENAME                =   "/data/logs/php/error_%datetime{%Y%M%d}.log"
    
        * WARNING:
            FILENAME                =   "/data/logs/php/warning_%datetime{%Y%M%d}.log"
    
        * INFO:
            FILENAME                =   "/data/logs/php/info_%datetime{%Y%M%d}.log"
    
        * VERBOSE:  
            ENABLED                 =   false
    
    -- easylog // logger id
        * GLOBAL:
            ENABLED                 =   true
            TO_FILE                 =   true
            TO_STANDARD_OUTPUT      =   true
            FORMAT                  =   "[%datetime{%Y-%M-%d %H:%m:%s}] %logger.%level | %msg"
            FILENAME                =   "/data/logs/php/easylog/log_%datetime{%Y%M%d}.log"
            MILLISECONDS_WIDTH      =   3
            PERFORMANCE_TRACKING    =   false
            MAX_LOG_FILE_SIZE       =   1048576
            LOG_FLUSH_THRESHOLD     =   0
    
        * INFO:
            FILENAME                =   "/data/logs/php/easylog/info_%datetime{%Y%M%d}.log"
    
        * ERROR:
            FILENAME                =   "/data/logs/php/easylog/error_%datetime{%Y%M%d}.log"
    
    4 条回复    2017-07-10 09:55:45 +08:00
    crabRunning
        1
    crabRunning  
       2017-07-07 17:13:36 +08:00
    有个类似的 seaslog
    Roope
        2
    Roope  
       2017-07-07 17:52:37 +08:00
    高总 6666
    iamfirst
        3
    iamfirst  
       2017-07-09 12:32:53 +08:00 via Android
    帮顶,最近也在深入了解 php 内核,准备用 c 来写扩展
    cdoco
        4
    cdoco  
    OP
       2017-07-10 09:55:45 +08:00
    @iamfirst thx, 有时间可以共同探讨下 😀
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2200 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 01:25 · PVG 09:25 · LAX 17:25 · JFK 20:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.