afi/solo-logger

1.0.1 2022-03-09 14:19 UTC

This package is auto-updated.

Last update: 2024-09-09 19:54:27 UTC


README

示例

这里我们使用默认的日志记录器,将消息写入标准输出。

<?php

require_once "vendor/autoload.php";

Logger::init();
$logger = Logger::get();

$e = new RuntimeException("Error");
$arr = array("key" => "val", "key1" => 928);

$obj = new stdClass();
$obj->attribute = "value";

$l->error("Error!", $e);
$l->debug("Dump an array", $arr);
$l->debug("Write some object", $obj);

设置


Logger::init($settings);

设置是数组


$array = [
	"loggers" => [],
	"writers" => [],
	"parsers" => []
]

日志记录器

您可以定义多个日志记录器。


"loggers" => [
	"test-logger" => [
	
		// enable\disable the logger.  Optional, default - true
		"enabled" => true,
		
		// list of writers. Required, default - ["default"]
		"writers" => ["default", "file-writer"],
		
		// format of log message. Required.
		"format" => "{date-time} {log-name} [{log-level}]: {log-message}\nContext: {log-context}\n\n"
	]
],

format 属性包含宏,如 {XXXX}。它们将被值替换。

{date-time} - 当前日期时间 {log-name} - 当前日志记录器的名称 {log-level} - 当前日志级别 {log-message} - 日志消息 {log-context} - 上下文对象 {ip-address} - 客户端 IP 地址 {env.} - 提供对 $GLOBALS 数组的访问。例如,{env._SERVER.LC_NAME} 将返回 $_SERVER["LC_NAME"] 的值

写入器

写入器是一个写入日志消息的实体。


"writers" => [
	"file" => [
        "level" => Level::ERROR,
        "class" => "Solo\\Logger\\Writers\\FileWriter",
        "ignoreErrors" => false,
        "writeOnlyCurrentLevel" => true,
        "options" => [
            "output" => "error-log.txt"
        ]
    ],
]

level - 写入器将处理此级别和更高级别的消息。必需。 class - 类名称。必需。 ignoreErrors - 如果为真,忽略错误。可选,默认为 true。 writeOnlyCurrentLevel - 仅写入与当前级别对应的消息。可选,默认为 false。 options - 包含写入器实例属性和值的数组。