定制 derywat/php-logging 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

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

derywat/php-logging

最新稳定版本:0.1.2

Composer 安装命令:

composer require derywat/php-logging

包简介

Simple, extendable PHP logging library.

README 文档

README

Caution

LoggerInterface and classes methods are NOT STABLE until anounced.

Single target loggers

Single target loggers allow logging to single target - file, stdOut, strErr.

StdOutLogger & StdErrLogger

StdOutLogger class allows logging to stdOut. StdErrLogger class allows logging to stdErr.

use derywat\logging\LogLevel;
use derywat\logging\StdOutLogger;

$logger = (new StdOutLogger())->setLevel(LogLevel::INFO);

//log something...
$logger->log(LogLevel::INFO,'main process','main process example log message.');

FileLogger

FileLogger class allows logging to file.

use derywat\logging\FileLogger;
use derywat\logging\LogLevel;

$logger = (new FileLogger())->setLogFile('var/log/service.info.log')->setLevel(LogLevel::INFO);

//log something...
$logger->log(LogLevel::INFO,'main process','main process example log message.');

Multiple target loggers

CompositeLogger

CompositeLogger class allows logging to multiple single target loggers.

use derywat\logging\CompositeLogger;
use derywat\logging\FileLogger;
use derywat\logging\LogLevel;
use derywat\logging\StdErrLogger;
use derywat\logging\StdOutLogger;

$logger = ((new CompositeLogger())

	//StdOut logger - logging levels from INFO to WARN
	->addLogger((new StdOutLogger())->setLevel(LogLevel::INFO)->setMaxLevel(LogLevel::WARN))

	//StdErr logger - logging levels from ERROR
	->addLogger((new StdErrLogger())->setLevel(LogLevel::ERROR))

	//File logger - logging levels from INFO
	->addLogger((new FileLogger())->setLogFile('var/log/service.info.log')->setLevel(LogLevel::INFO))

	//File logger - logging levels from WARN
	->addLogger((new FileLogger())->setLogFile('var/log/service.warn.log')->setLevel(LogLevel::WARN))

	//File logger - logging levels from ERROR
	->addLogger((new FileLogger())->setLogFile('var/log/service.error.log')->setLevel(LogLevel::ERROR))
);

//log something...
$logger->log(LogLevel::INFO,'main process','main process example log message.');

Adding loggers

New loggers can be implemented by extending abstract Logger class.

class NewLogger extends Logger implements LoggerInterface {

	protected function _writeToLog(LogLevel $level, String $source, String $message){
		//default log line formatting defined in Logger class
		$line = $this->_formatLogLine($level,$source,$message);

		//put code writing/sending $line to log here

	}

}

Loggers methods

setLevel

Sets minimal logging level (inclusive)

//sets minimum log level to WARN, lower levels (DEBUG, INFO) are not written to log
$logger->setLevel(LogLevel::WARN);

setMaxLevel

Sets maximal logging level (inclusive)

//sets maximum log level to WARN, higher levels (ERROR, FATAL) are not written to log
$logger->setMaxLevel(LogLevel::WARN);

setDateFormat

Sets date format for log lines.
Expected format string is the same as for use with DateTime.format() method.
Default Logger class format: 'Y-m-d\TH:i:s.uP'.

	$logger->setDateFormat('Y-m-d H:i:s');

log

Log method writes line to log.

$logger->log(LogLevel::INFO,'main process','example log message');

Log output format:

2025-12-09T14:41:52.362406+01:00: [info] (main process): example log message

LogLevel

LogLevel enum class defines logging levels.

Levels / log file representation

  • DEBUG / [debug]
  • INFO / [info]
  • WARN / [warning]
  • ERROR / [error]
  • FATAL / [fatal]

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-12-09