Asf_Logger


Introduction

Asf_Logger类, 这是一个日志静态类的封装

Asf框架会自动关闭所有已打开的文件句柄

如果 $adapter_id = ASF\LOGGER\FILE, 实例化类 Asf\Log\Adapter\File

如果 $adapter_id = ASF\LOGGER\SYSLOG, 实例化类 Asf\Log\Adapter\Syslog

在开启命名空间情况下(asf.use_namespace=1)类名为 Asf\Logger

Performance

测试工具: asf/tools/asf_log_benchmark.php

不开启buffer_size情况下, Asf\Logger与以下函数的对比:

开启buffer_size情况下, Asf\Logger与以下函数的对比:

Class synopsis

<?php
final class Asf_Logger
{
    /* 目录使用配置asf.log_path, 非单例 */
    public static object adapter(int $adapter_id, string $file_name)
    /* 单例, 无框架依赖, 只针对文件操作有效, 推荐使用 (Asf > 2.2.2) */
    public static object init(string $full_path)
    /* 获取已经打开的所有文件句柄 */
    public static array/null getHandles(void)
}

Examples

Example #1

<?php
use Asf\Logger;

echo '-----error type-----', PHP_EOL;
var_dump(Logger::init(''));
var_dump(Logger::init(111));
var_dump(Logger::init('./222'));
var_dump(Logger::init('////'));
var_dump(Logger::init('/tmp/abcdefg/'));

echo '-----getInstance-----', PHP_EOL;
var_dump(is_object(Logger::init('/tmp/asf.logger.0.txt')));
var_dump(is_object(Logger::init('/tmp/asf.logger.0.txt')));
var_dump(is_object(Logger::init('/tmp/asf.logger.1.txt')));

echo '-----write log-----', PHP_EOL;
var_dump(Logger::init('/tmp/asf.logger.1.txt')->emergency('hello world'));
var_dump(Logger::init('/tmp/asf.logger.1.txt')->alert('hello world'));
var_dump(Logger::init('/tmp/asf.logger.1.txt')->critical('hello world'));
var_dump(Logger::init('/tmp/asf.logger.1.txt')->error('hello world'));
var_dump(Logger::init('/tmp/asf.logger.1.txt')->warning('hello world'));
var_dump(Logger::init('/tmp/asf.logger.1.txt')->notice('hello world'));
var_dump(Logger::init('/tmp/asf.logger.1.txt')->info('hello world'));
var_dump(Logger::init('/tmp/asf.logger.1.txt')->debug('hello world'));

echo '-----is_array-----', PHP_EOL;
var_dump(is_array(Logger::getHandles()));