gbox / minilog

一个无需依赖的PHP日志工具,绝对好用到哭 :)

2.0.0 2022-05-04 04:05 UTC

This package is auto-updated.

Last update: 2024-09-04 09:08:26 UTC


README

一个无需依赖的PHP日志工具,绝对好用到哭 :)

为什么还需要另一个日志工具?

我喜欢Monolog这样的项目,但它们缺少我对JavaScript原生的console.log()所喜欢的便利性;而且Minilog中还有一些你可能会喜欢的便利功能

  • 无需依赖
  • 每个日志方法接受N个参数,并将它们自动连接成一个日志消息(就像JS的console.log!!! :D)
  • 自动将数组和对自动进行JSON编码(就像JS的console.log :P),并相应地标记输出
  • 自动确定要写入的CLI流;允许在PHP内部服务器上运行时进行CLI日志记录
  • 根据日志级别的严重性自动应用CLI消息的颜色编码
  • 有条件地允许每个日志实例记录调用文件和行号,以便您知道日志消息的来源
  • 自动将每个日志文件以Y-M-D开头,以便进行每日日志轮换

安装

打开您最喜欢的CLI,并输入典型的composer require命令

> composer require gbox/minilog

BOOM!现在开始记录日志!

用法

使用Minilog非常简单。您定义一个new \Gbox\Minilog()类实例,传入日志上下文名称,并可以传入一个选项关联数组来配置它以满足您的需求。

<?php

require "vendor/autoload.php";

use Gbox\Minilog as Logger;

// Minilog($logname [, $options[] ])
Logger::setup('logName', [
    // write log entries to the console
    'console'    => true,            // bool   : defaults true

    // defines where log files should be written to
    'dir'        => './logs',        // string : defaults '.'

    // defines the minimum RFC 5424 level to log
    'level'      => 'DEBUG',         // string : defaults 'DEBUG'

    // defines whether to log the path and line number of the log call
    'linenos'    => true,            // bool   : defaults true

    // defines the timestamp format
    'timestamp'  => '[Y-m-d H:m:s]', // string : you can change this if you want
]);


Logger::debug('testing', 'message', 'here');     // testing message here
Logger::info('testing', 'message', 'here');      // testing message here
Logger::notice('testing', 'message', 'here');    // testing message here
Logger::warning('testing', 'message', 'here');   // testing message here
Logger::error('testing', 'message', 'here');     // testing message here
Logger::critical('testing', 'message', 'here');  // testing message here
Logger::alert('testing', 'message', 'here');     // testing message here
Logger::emergency('testing', 'message', 'here'); // testing message here

示例输出

您可以通过克隆此存储库并在您的终端中运行以下命令来看到Minilog的一个示例

> php test-minilog.php
[2018-07-23 08:07:36] testing_logs.DEBUG:     test-minilog.php:15 testing debug messages (BOOL) true
[2018-07-23 08:07:36] testing_logs.INFO:      test-minilog.php:16 testing info messages (BOOL) true
[2018-07-23 08:07:36] testing_logs.NOTICE:    test-minilog.php:17 testing notice messages (BOOL) true
[2018-07-23 08:07:36] testing_logs.WARNING:   test-minilog.php:18 testing warning messages (BOOL) false
[2018-07-23 08:07:36] testing_logs.ERROR:     test-minilog.php:19 testing error messages (BOOL) false
[2018-07-23 08:07:36] testing_logs.CRITICAL:  test-minilog.php:20 testing critical messages (BOOL) false
[2018-07-23 08:07:36] testing_logs.ALERT:     test-minilog.php:21 testing alert messages (BOOL) false
[2018-07-23 08:07:36] testing_logs.EMERGENCY: test-minilog.php:22 testing emergency messages (BOOL) false