梵吉拉/simple-logger

PHP日志库(兼容PSR-3规范)

0.0.4 2019-10-31 00:16 UTC

This package is auto-updated.

Last update: 2024-09-29 05:22:12 UTC


README

SimpleLogger是一个用于写入日志的PHP库。

  • 驱动器:Syslog、stdout、stderr和文本文件
  • 兼容PSR-3标准日志接口
  • 需求:PHP >= 5.3
  • 作者:Frédéric Guillot, Vajira Lasantha
  • 许可:MIT

最初从fguillot/simpleLogger中提取,以保持此库在PHP <= 7.0时活跃。firehed/simplelogger的最新库不支持PHP <= 7.0。

使用方法

安装

composer require vajiral/simple-logger

Syslog

将日志消息发送到Syslog

<?php

require 'vendor/autoload.php';

// Setup Syslog logging
$logger = new SimpleLogger\Syslog('myapp');

// Output to syslog: "Jun  2 15:55:09 hostname myapp[2712]: foobar"
$logger->error('foobar');

// Output to syslog: "Jun  2 15:55:09 hostname myapp[2712]: Error at /Users/Me/Devel/libraries/simpleLogger/example.php at line 15"
$logger->error('Error at {filename} at line {line}', ['filename' => __FILE__, 'line' => __LINE__]);

Stdout

$logger = new \SimpleLogger\Stdout();
$logger->error('foobar');

Stderr

$logger = new \SimpleLogger\Stderr();
$logger->info('foobar');

文本文件

将日志消息发送到文本文件

<?php

require 'vendor/autoload.php';

// Setup File logging
$logger = new SimpleLogger\File('/tmp/simplelogger.log');

// Output to the file: "[2013-06-02 16:03:28] [info] foobar"
$logger->info('foobar');

// Output to the file: "[2013-06-02 16:03:28] [error] Error at /Users/fred/Devel/libraries/simpleLogger/example.php at line 24"
$logger->error('Error at {filename} at line {line}', array('filename' => __FILE__, 'line' => __LINE__));

// Dump a variable
$values = array(
    'key' => 'value'
);

// Output: [2013-06-02 16:05:32] [debug] array (
//  'key' => 'value',
// )
$logger->dump($values);

多个日志器

将日志消息发送到多个日志器

<?php

require 'vendor/autoload.php';

$logger = new SimpleLogger\Logger;
$logger->setLogger(new SimpleLogger\Syslog('myapp'));
$logger->setLogger(new SimpleLogger\File('/tmp/simplelogger.log'));

$logger->info('my message');
$logger->error('my error message');
$logger->error('my error message with a {variable}', array('variable' => 'test'));

日志器最小日志级别

在这个例子中,只有级别 >= "error" 的消息将被发送到Syslog处理器,但所有内容都将发送到文件处理器

<?php

require 'vendor/autoload.php';

$syslog = new SimpleLogger\Syslog('myapp');
$syslog->setLevel(Psr\Log\LogLevel::ERROR);  // Define the minimum log level

$file = new SimpleLogger\File('/tmp/simplelogger.log');

$logger = new SimpleLogger\Logger;
$logger->setLogger($syslog);
$logger->setLogger($file);

$logger->debug('debug info sent only to the text file');
$logger->error('my error message');
$logger->error('my error message with a {variable}', array('variable' => 'test'));

默认的最小日志级别是LogLevel::DEBUG