一个简单的日志类,KLogger的改进版本,具有格式化功能,略微优化,无依赖。

1.0.1 2016-01-21 12:34 UTC

This package is not auto-updated.

Last update: 2024-09-28 17:07:24 UTC


README

最初由Kenny KatzgrauDan Horrigan编写,并由[Iulian Mironica] (http://twitter.com/iulianmironica)更新

关于

这个类是KLogger的改进版本,我在我的项目中使用并维护。 (KLogger是一个易于使用的PSR-3兼容的PHP日志类)。它旨在是一个可以快速包含到项目中并立即工作的类。

改进

  • 稳定性
  • 添加格式化功能
  • 所有内容都在一个类中
  • 性能提升

安装

Composer

从命令行

composer require iulianmironica/klogger:dev-master

在你的composer.json

{
    "require": {
        "iulianmironica/klogger": "dev-master"
    }
}

基本用法

<?php

require 'vendor/autoload.php';

$users = [
    [
        'name' => 'Kenny Katzgrau',
        'username' => 'katzgrau',
    ],
    [
        'name' => 'Dan Horrigan',
        'username' => 'dhrrgn',
    ],
];

// New feature
$loggerSettings = [
    'level' => \IulianMironica\KLogger\Logger::DEBUG, // emergency, alert, critical, error, warning, notice, info, debug
    'timestamp' => 'm-d-Y G:i:s', // leave blank for none
    'format' => '%timestamp% %level% %class% %function% %message%', // output format - leave blank for none
    'directory' => /path/to/log/dir, // path to the log directory
    /* %timestamp%      - the timestamp declared above
     * %level%          - level declared above
     * %class%          - class name
     * %function%       - method/function name
     * %message%        - the message passed as param
     * %line%, %file%   - point to the parent file that triggered method/function
     */
];

$logger = new \IulianMironica\KLogger\Logger($loggerSettings);
$logger->info('Returned a million search results');
$logger->error('Oh dear.');
$logger->debug('Got these users from the Database.', $users);

// New feature - you can now debug your data without needing to pass a string as first param
$logger->debug($users);

输出

02-19-2015 14:34:08 DEBUG Model\User getAll Got these users from the Database.
    0: array(
        'name' => 'Kenny Katzgrau',
        'username' => 'katzgrau',
    )
    1: array(
        'name' => 'Dan Horrigan',
        'username' => 'dhrrgn',
    )
02-19-2015 14:34:08 DEBUG Model\User getAll
    0: array(
        'name' => 'Kenny Katzgrau',
        'username' => 'katzgrau',
    )
    1: array(
        'name' => 'Dan Horrigan',
        'username' => 'dhrrgn',
    )

设置日志级别阈值

您可以使用\IulianMironica\KLogger\Logger常量来设置日志级别阈值,这样任何低于该级别的消息将不会记录。

默认级别

默认级别是DEBUG,这意味着所有内容都将记录。

可用级别

<?php
use IulianMironica\KLogger\Logger;

// These are in order of highest priority to lowest.
\Logger::EMERGENCY;
\Logger::ALERT;
\Logger::CRITICAL;
\Logger::WARNING;
\Logger::NOTICE;
\Logger::INFO;
\Logger::DEBUG;

示例

<?php

$loggerSettings = [
    'level' => \IulianMironica\KLogger\Logger::ERROR, // emergency, alert, critical, error, warning, notice, info, debug
    'timestamp' => 'm-d-Y G:i:s', // leave blank for none
    'format' => '%timestamp% %level% %class% %function% %message%', // output format - leave blank for none
    'directory' => /path/to/log/dir, // path to the log directory
    /* %timestamp%      - the timestamp declared above
     * %level%          - level declared above
     * %class%          - class name
     * %function%       - method/function name
     * %message%        - the message passed as param
     * %line%, %file%   - point to the parent file that triggered method/function
     */
];

$logger = new \IulianMironica\KLogger\Logger($loggerSettings);
$logger->error('Uh Oh!'); // Will be logged
$logger->info('Something Happened Here'); // Will be NOT logged

为什么使用KLogger?

为什么不呢?只需将其放入并开始使用。如果它节省了您的时间并完成了您所需的工作,那就去做吧!引用一下我们C语言之父的书中的一句话:“建立在他人工作的基础上”。

谁使用KLogger?

Klogger已经被用于以下项目的开发中

* The University of Iowa
* The University of Laverne
* The New Jersey Institute of Technology
* Middlesex Hospital in NJ

此外,它还用于许多项目和商业项目。

特别感谢

特别感谢所有贡献者

许可证

MIT许可证

版权所有 (c) 2008-2014 Kenny Katzgrau katzgrau@gmail.com

在此特此授予任何人免费获得此软件及其相关文档文件(以下简称“软件”)副本的权利,以任何形式使用该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许提供软件的个人做同样的事,但需遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

本软件按“原样”提供,不提供任何形式的保证,明示或暗示,包括但不限于适销性、针对特定目的的适用性和非侵权性。在任何情况下,作者或版权所有者不应对任何索赔、损害或其他责任负责,无论这些索赔、损害或其他责任是由于合同、侵权或其他原因引起的,以及与软件或其使用或其他交易有关。