ride/lib-log

Ride框架的日志库

1.2.0 2023-08-23 13:35 UTC

This package is auto-updated.

Last update: 2024-09-23 15:46:14 UTC


README

PHP Ride框架的日志库。

日志用于记录事件历史或调试应用程序。

本库包含的内容

LogMessage

日志消息定义了正在执行的操作或发生的事件。

它包括以下内容:

  • 级别:错误、警告、信息或调试
  • 标题:消息的标题
  • 描述:关于消息的详细信息
  • 日期:事件的时间和日期
  • 微秒:应用程序运行中的微秒数
  • id:日志会话的id
  • 来源:记录消息的库或模块
  • 客户端:客户端id(例如,IP地址)

LogSession

LogSession 是一组属于同一组的日志消息。例如,处理相同HTTP请求的所有已记录消息。

Log

日志对象是库的包装器,它提供了一个简单的接口来记录消息。它使用观察者模式将记录的消息分配给日志的监听器。

LogListener

日志监听器执行消息的实际记录操作。最常见的事情是将日志消息写入文件。已经提供了一个仅执行此操作的实现。

BrowsableLogListener

可浏览的日志监听器是常规日志监听器的扩展。它增加了从日志检索和检查日志消息的功能。

代码示例

查看此代码示例以了解此库的用途

<?php

use ride\library\decorator\LogMessageDecorator;
use ride\library\log\listener\BrowseableFileLogListener;
use ride\library\log\Log;

// obtain the client and generate a log session id
$client = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : 'unknown';
$logSessionId = 'abc123';

// create a listener
$listener = new BrowseableFileLogListener('/path/to/log.file'); // make sure it's writable
$listener->setFileTruncateSize(512); // in kilobytes
$listener->setLogMessageDecorator(new LogMessageDecorator()); // formats the log messages

// create the log object
$log = new Log();
$log->setId($logSessionId);
$log->setClient($client);
$log->addLogListener($listener);

// do some logging
$log->logDebug('Debug message');
$log->logInformation('Information message', 'with a description', 'source');
$log->logWarning('Warning message', 'with a description', 'my-module');
$log->logError('Debug message', 'with a description');
$log->logException(new Exception('A exception'));

// browse the log
$logSessions = $listener->getLogSessions(array('limit' => 10, 'page' => 2), $pages);
$logSession = $listener->getLogSession($logSessionId);
$logMessages = $logSession->getLogMessages();
$logMessages = $logSession->getLogMessagesBySource('my-module');
$logMessages = $logSession->getLogMessagesByQuery('message');

安装

您可以使用 Composer 安装此库。

composer require ride/lib-log