tleckie/log 问题修复 & 功能扩展

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

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

tleckie/log

Composer 安装命令:

composer require tleckie/log

包简介

Simple PSR-3 log

README 文档

README

Logger:

Latest Version on Packagist Scrutinizer Code Quality Build Status Total Downloads Code Intelligence Status

You can install the package via composer:

composer require tleckie/log
require_once "vendor/autoload.php";

use Tleckie\Log\Handler\StreamHandler;
use Tleckie\Log\Handler\FileHandler;
use Tleckie\Log\Level;
use Tleckie\Log\Log;

$handlers = [
    new StreamHandler(Level::DEBUG),
    new FileHandler(Level::DEBUG, '/tmp/error.log')
];

$log = new Log($handlers);

class DummyToString {
    public function __toString(): string
    {
        return 'My string';
    }
}

class DummySerialize implements \JsonSerializable {
    public function jsonSerialize()
    {
        return [
            'value1',
            'value2'
        ];
    }
}

$log->alert(new Exception('Test alert message'),[1,2]);
$log->critical('Test critical message: {A} => {B}', ['A' => '(A value)', 'B' => '(B value)']);
$log->info('Test info message');
$log->error(new Exception('Test error message'));
$log->emergency('Test emergency message');
$log->emergency(['{A}' => 155555, '{B}' => 99999], ['A' => '(A value)', 'B' => '(B value)']);
$log->emergency(['A' => 155555, 'B' => 99999]);
$log->emergency(new class(){});
$log->emergency(new DummyToString());
$log->emergency(new DummySerialized());

Output:

[2021-04-20T13:24:35+02:00] channel.ALERT "Test alert message" {"class":"Exception","message":"Test alert message","code":0,"file":"/log/index.php:34"} [1,2]
[2021-04-20T13:24:35+02:00] channel.CRITICAL "Test critical message: (A value) => (B value)" {} {"A":"(A value)","B":"(B value)"}
[2021-04-20T13:24:35+02:00] channel.INFO "Test info message" {} []
[2021-04-20T13:24:35+02:00] channel.ERROR "Test error message" {"class":"Exception","message":"Test error message","code":0,"file":"/log/index.php:37"} []
[2021-04-20T13:24:35+02:00] channel.EMERGENCY "Test emergency message" {} []
[2021-04-20T13:24:35+02:00] channel.EMERGENCY "{\"(A value)\":155555,\"(B value)\":99999}" {} {"A":"(A value)","B":"(B value)"}
[2021-04-20T13:24:35+02:00] channel.EMERGENCY "{\"A\":155555,\"B\":99999}" {} []
[2021-04-20T13:24:35+02:00] channel.EMERGENCY "class@anonymous\u0000/log/index.php:41$2" {} []
[2021-04-20T13:24:35+02:00] channel.EMERGENCY "My string" {} []
[2021-04-20T13:24:35+02:00] channel.EMERGENCY "[\"value1\",\"value2\"]" {} []

Default line format:

[%date%] %channel%.%level% %message% %context%
<?php

require_once "vendor/autoload.php";

use Tleckie\Log\Handler\StreamHandler;
use Tleckie\Log\Level;
use Tleckie\Log\Log;

$handlers = [new StreamHandler(Level::DEBUG)];

// change line format
$lineFormat = "[%date%] [%channel%] => (%level%) %message% %context%";
$log = new Log($handlers, 'channelName', $lineFormat);

Output:

[2021-04-20T13:33:03+02:00] [channel] => (ALERT) "Test alert message" {"class":"Exception","message":"Test alert message","code":0,"file":"/log/index.php:34"} [1,2]
[2021-04-20T13:33:03+02:00] [channel] => (CRITICAL) "Test critical message: (A value) => (B value)" {} {"A":"(A value)","B":"(B value)"}
[2021-04-20T13:33:03+02:00] [channel] => (INFO) "Test info message" {} []
[2021-04-20T13:33:03+02:00] [channel] => (ERROR) "Test error message" {"class":"Exception","message":"Test error message","code":0,"file":"/log/index.php:37"} []
[2021-04-20T13:33:03+02:00] [channel] => (EMERGENCY) "Test emergency message" {} []
[2021-04-20T13:33:03+02:00] [channel] => (EMERGENCY) "{\"(A value)\":155555,\"(B value)\":99999}" {} {"A":"(A value)","B":"(B value)"}
[2021-04-20T13:33:03+02:00] [channel] => (EMERGENCY) "{\"A\":155555,\"B\":99999}" {} []
[2021-04-20T13:33:03+02:00] [channel] => (EMERGENCY) "class@anonymous\u0000/log/index.php:41$2" {} []
[2021-04-20T13:33:03+02:00] [channel] => (EMERGENCY) "My string" {} []
[2021-04-20T13:33:03+02:00] [channel] => (EMERGENCY) "[\"value1\",\"value2\"]" {} []

tleckie/log 适用场景与选型建议

tleckie/log 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 5 次下载、GitHub Stars 达 0, 最近一次更新时间为 2021 年 04 月 20 日, 在 PHP 生态内属于活跃度较高的组件。

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

围绕 tleckie/log 我们能提供哪些服务?
定制开发 / 二次开发

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

BUG 修复 & 性能优化

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

项目外包 & 长期维护

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

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

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2021-04-20