lemon777/gelf-php 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

lemon777/gelf-php

Composer 安装命令:

composer require lemon777/gelf-php

包简介

A php implementation to send log-messages to a GELF compatible backend like Graylog2.

README 文档

README

Build Status Code Coverage Scrutinizer Quality Score

A php implementation to send log-files to a gelf compatible backend like Graylog2. This library conforms to the PSR standards in regards to structure (4), coding-style (1, 2) and logging (3).

It's a loosely based on the original Graylog2 gelf-php and mlehner's fork.

Stable release and deprecation of the original graylog2/gelf-php

This implementation became the official PHP GELF library on 2013-12-19 and is now released as graylog2/gelf-php. The old library became deprecated at the same time and it's recommended to upgrade.

Since the deprecated library never got a stable release, we decided keep it available as v0.1. This means: If you have a project based on the deprecated library but no time to upgrade to version 1.0, we recommend to change your composer.json as following:

    "require": {
       // ...
       "graylog2/gelf-php": "0.1.*"
       // ...
    }

After running an additional composer update everything should work as expected.

Usage

Recommended installation via composer:

Add gelf-php to composer.json either by running composer require graylog2/gelf-php or by defining it manually:

"require": {
   // ...
   "graylog2/gelf-php": "~1.5"
   // ...
}

Reinstall dependencies: composer install

Examples

For usage examples, go to /examples.

Muting connection and transport errors

Oftentimes projects run into the situation where they don't want to raise exceptions for logging-errors. Since the standard transports like Udp, Tcp and Http can be kind of noise for fwrite/fopen errors, gelf-php provides a IgnoreErrorTransportWrapper. This class can decorate any AbstractTransport and will mute all exceptions.

How this applies in practice can be seen in the advanced-example.

If you use gelf-php in conjunction with monolog/symfony, the following snippet should help you with properly setting up your logging backend.

Assumung you have a typical monolog config:

monolog:
  handlers:
    graylog:
      type: service
      id: monolog.gelf_handler
      level: debug

You only need to properly define the symfony-service gelf-handler:

services:
  monolog.gelf_handler:
    class: Monolog\Handler\GelfHandler
    arguments: [@gelf.publisher]
    
  gelf.publisher:
    class: Gelf\Publisher
    arguments: [@gelf.ignore_error_transport]
    
  gelf.ignore_error_transport:
    class: Gelf\Transport\IgnoreErrorTransportWrapper
    arguments: [@gelf.transport]
    
  gelf.transport:
    class: Gelf\Transport\UdpTransport # or Tcp, Amp, Http,...
    arguments: [] # ... whatever is required

HHVM

While HHVM is supported/tested, there are some restrictions to look out for:

  • Stream-context support is very limited (as of 2014) - especially regarding SSL - many use-cases might not work as expected (or not at all...)
  • fwrite does behave a little different

The failing unit-tests are skipped by default when running on HHVM. They are also all annotated with @group hhvm-failures. You can force to run those failures by setting FORCE_HHVM_TESTS=1 in the environment. Therefore you can specifically check the state of HHVM failures by running:

FORCE_HHVM_TESTS=1 hhvm vendor/bin/phpunit --group hhvm-failures

License

The library is licensed under the MIT license. For details check out the LICENSE file.

Development & Contributing

You are welcome to modify, extend and bugfix all you like. :-) If you have any questions/proposals/etc. you can contact me on Twitter (@bzikarsky) or message me on freenode#graylog2.

Tools

  1. composer, preferably a system-wide installation as composer
  2. PHPUnit
  3. Optional: PHP_CodeSniffer for PSR-X-compatibility checks

Steps

  1. Clone repository and cd into it: git clone git@github.com:bzikarsky/gelf-php && cd gelf-php
  2. Install dependencies: composer install
  3. Run unit-tests: vendor/bin/phpunit
  4. Check PSR compatibility: vendor/bin/phpcs --standard=PSR2 src tests examples

lemon777/gelf-php 适用场景与选型建议

lemon777/gelf-php 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 766 次下载、GitHub Stars 达 0, 最近一次更新时间为 2019 年 10 月 16 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 lemon777/gelf-php 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 lemon777/gelf-php 我们能提供哪些服务?
定制开发 / 二次开发

基于 lemon777/gelf-php 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 766
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 18
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 88
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2019-10-16