smalex86/logger

简单的日志系统

v1.7.8 2018-10-17 16:09 UTC

This package is auto-updated.

Last update: 2024-09-20 02:54:12 UTC


README

适用于PsrLog的简单日志系统

  • Logger - 包含和管理路由的基本日志类
  • Route - 路由的基本类
  • SimpleLoggerFactory - 简单(文件)日志工厂
  • SimpleStaticLogger - 不适用于PsrLog
  • route
    • CachedFileRoute - 使用缓存进行文件日志的路由
    • ConsoleRoute - 控制台输出日志信息的路由(用于命令行模式)
    • ConsoleRouteWithPid - 带进程ID信息的控制台输出日志信息的路由(用于命令行模式)
    • DatabaseRoute - 数据库日志路由
    • FileRoute - 简单Logger,文件日志路由
    • FileRouteWithPid - 打印进程ID到日志消息的文件日志路由
    • SyslogRoute - syslog路由
  • tests

要使用此日志记录器,请写入composer.json

{
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/smalex86/logger"
        }
    ],
    "require": {
        "smalex86/logger": "1.7.8"
    }
}

并将以下文本添加到您的项目中

使用PSR-4自动加载器使用它

use smalex86\logger\Logger;

如果您想使用适合Psr\Log\LoggerInterface的动态对象,请在项目中写入以下命令

$logger = new Logger();
$logger->routeList->attach(new smalex86\logger\route\FileRoute([
    'isEnabled' => true,
    'maxLevel' => 7,
    'logFile' => 'test.log',
    'folder' => dirname(__DIR__, 2) . '/logs/'
]));
$logger->routeList->attach(new smalex86\logger\route\CachedFileRoute([
    'isEnabled' => true,
    'maxLevel' => 7,
    'logFile' => 'cacheTest.log',
    'folder' => dirname(__DIR__, 2) . '/logs/',
    'cacheSize' => 50
]));
$logger->routeList->attach(new smalex86\logger\route\ConsoleRoute([
    'isEnabled' => true,
    'maxLevel' => 7
]));
$logger->routeList->attach(new smalex86\logger\route\ConsoleRouteWithPid([
    'isEnabled' => true,
    'maxLevel' => 7
]));
$logger->routeList->attach(new smalex86\logger\route\DatabaseRoute([
    'isEnabled' => true,
    'maxLevel' => 6,
    'dsn' => 'mysql:host=localhost;port=3306;dbname=test',
    'username' => 'root',
    'password' => '',
    'table' => 'project_log'    
]));
$logger->routeList->attach(new smalex86\logger\route\SyslogRoute([
    'isEnabled' => true,
    'maxLevel' => 5
]));
$logger->info('info', ['class'=>'Logger', 'method'=>'getName', '38']); // PsrLog style

一些示例

$logger->emergency('emergency test', ['test'=>'value', '32']);
$logger->alert('alert test', ['test'=>'value', 1=>'33']);
$logger->critical('critical test');
$logger->error('error test', ['34', '35']);
$logger->warning('warning test', ['36', '37']);
$logger->notice('notice test');
$logger->info('info', ['class'=>'Logger', 'method'=>'getName', '38']);
$logger->debug('debug test', [__LINE__]);