kuran/slogger

简单的日志文件。

v1.0.2 2024-01-25 18:07 UTC

This package is auto-updated.

Last update: 2024-09-25 19:52:14 UTC


README

PHP的一个简单日志类。

Packagist PHP Version

关于

这是一个简单的日志类,易于实现,以便您不必担心太多配置。
此类遵循PSR-3标准。

基本用法

使用Logger类所需的最小设置。

<?php
require_once("vendor/Autoloader.php");

use Kuran\SLOGGER\{Logger, ErrorLevel, Managers\FileManager};

/* Instanciate the Logger.
*  Add a Manager to the logger. The manager has a default Formater.
*/
$log = new Logger(
    array(
        new FileManager()
        )
    );


/* Simple log.
*  Needs a message body, and an array for context.
*/
$log->alert(
    "Test message for the file {:file}",
    array(
        ":file" => __FILE__,
        ":extras" => array(
            ["name" => "Admin", "username" => "admin"],
            ["name" => "Root", "username" => "root"]
            )
    )
);

Logger类选项

- 构造函数

    __construct(array $managers = array())

与创建不带参数的logger然后使用 setManagers() 函数相同

- setManagers方法

此方法用于将一组管理器设置到logger中。
这将替换Logger的管理器列表。

    setManagers(array $managers);

可以使用多个管理器将消息记录到不同的文件中,或使用不同的方法(数据库等)。或者以不同的错误级别记录消息。

- addManager方法

此方法用于向管理器栈中添加单个管理器。
如果您想在代码中稍后添加另一个 Manager

    addManager(ManagerInterface $manager);

文件管理器选项

- 构造函数

所有参数都是可选的。

__construct(
        string $filePath = 'app.log',
        ErrorLevel $level = ErrorLevel::ERROR,
        FormaterInterface $formater = null)

- setFormater

用于替换现有格式化器。

    setFormater(FormaterInterface $formater)

用法

    $manager = new FileManager(
        filePath: "path/to/logfile.log",
        level: ErrorLevel::INFO, // Set the minimum Error level for this manager.
        formater: new LineFormater()
    )

    // Setting multiple managers with different Error Levels

    $log = new Logger();

    $errorManager = new FileManager(
        filePath: "error.log",
        level: ErrorLevel::ERROR
    );
    $debugManager = new FileManager(
        filePath: "debug.log",
        level: ErrorLevel::DEBUG
    );

    //set the Manager list to $errorManager and $debugManager
    $log->setManager(array($errorManager, $debugManager));

    // add $manager to the list of managers
    $log->addManager($manager);

错误级别

错误级别在 ErrorLevel 枚举中定义如下

enum ErrorLevel: int
{
    case EMERGENCY = 800; //ErrorLevel::EMERGENCY
    case ALERT     = 700; //ErrorLevel::ALERT
    case CRITICAL  = 600; //ErrorLevel::CRITIAL
    case ERROR     = 500; //ErrorLevel::ERROR
    case WARNING   = 400; //ErrorLevel::WARNING
    case NOTICE    = 300; //ErrorLevel::NOTICE
    case INFO      = 200; //ErrorLevel::INFO
    case DEBUG     = 100; //ErrorLevel::DEBUG
}

行格式器选项

- 构造函数

所有参数都是可选的。

    __construct(
        string $format = null,
        string $timeFormat = null
        )

用法

$formater = new LineFormater(
    format: "{:date} {:errorLevel} {:message} {:context}",
    timeFormat: "m-d-Y H:i"
);