sohelaman / hello-log
PHP的Hello World类型的日志记录器
0.0.1
2018-11-23 09:47 UTC
Requires
- php: >=5.4.0
This package is auto-updated.
Last update: 2024-09-24 05:25:59 UTC
README
PHP的Hello World类型的日志记录器
特性
- 将日志数据记录到文件或返回数据以供打印/存储。
- 将时间戳、数据类型、序列号等附加信息添加到日志中。
- 简单的浏览器友好格式。
- 支持主要数据类型,如数组、对象。
- 支持以JSON格式输出。
- 内置计数器。
- 支持在日志记录时随时更改文件名。
- 可以使用基于时间的文件名后缀来分离日志文件。
基本用法
使用Composer获取该包
$ composer require sohelaman/hello-log
然后在您的PHP脚本中使用它
// Composer autoload require_once 'vendor/autoload.php'; use HelloLog\HelloLog; // Create a HelloLog instance $hellolog = new HelloLog('/home/sohel/Documents/Logfile.log'); // Simply print a message, this will not put message in log file $hellolog->msg('Arthur Curry, I hear you can talk to fish.'); // Put some info in log file $data = "Luke, I am your father!"; $hellolog->info($data); // AND YESS!! There are shortcuts too! $data = array("Diana" => "He said he'll fight with us?", "Bruce" => "More or less."); $hellolog->i($data); // Same as info() // Similarly put error or warning into the log $hellolog->warn("So, you're fast?"); $hellolog->error("That feels like an over simplification."); // Pass array or object $hellolog->i($_SERVER); // Return output instead of putting into log. Pass true as second parameter. echo $hellolog->i("I'm real when it's useful.", true); // Prints instead of putting into log
文档
构造函数
- 默认构造函数将使用/tmp目录和名为hellolog.log的文件。
- 注意,在许多系统中,如http或www-data这样的apache用户会在/tmp目录下创建子目录,然后创建文件。
$hellolog = new HelloLog();
- 使用路径和文件分割配置实例化
$hellolog = new HelloLog(<file path>, <file segmentation>); $hellolog = new HelloLog('/home/sohel/Documents/Logfile.log', 'DAY');
- 第三个构造函数参数是覆盖标志。如果为true,则每次记录日志时都会覆盖文件。
$hellolog = new HelloLog(<file path>, <file segmentation>, <overwrite flag>); $hellolog = new HelloLog('/home/sohel/Documents/Logfile.log', 'DAY', true);
- 注意,一旦打开覆盖标志,每次将任何内容放入日志文件时都会覆盖文件。因此,该文件中的先前内容将丢失。可以使用overwrite()方法打开或关闭覆盖标志。如果没有明确指定,则默认关闭。
$hellolog->overwrite(false); // Turns off overwrite flag. So, logs will be appended after this call. $hellolog->overwrite(true); // Turns on overwrite flag.
文件分割
- 日志文件分割会在日志文件名中基于时间添加一个后缀。
- 例如,'DAY'将为一天添加后缀,如2016-08-30,并使文件名如下所示:Logfile_2016-08-30.log
- 后缀将与给定文件名一起添加,因此如果有一个名为Logfle.log的文件,则如果没有已存在的同名文件,则将创建一个名为Logfile_2016-08-30.log的新文件。
- 其他分割方式有'NONE'、'YEAR'、'MONTH'、'DAY'、'HOUR'、'MINUTE'、'SECOND'
- 默认分割为'NONE',不会创建任何段,并将所有日志放入一个文件中。
获取器和设置器
- 您可以使用设置方法设置文件路径和文件分割,并且这些设置会立即生效。
$hellolog->setPath('/var/www/logs/New.log'); $hellolog->setSeg('MINUTE'); // 'NONE', 'YEAR', 'MONTH', 'DAY', 'HOUR', 'MINUTE', 'SECOND'
- 使用获取器方法获取当前路径和分割配置。
$path = $hellolog->getPath(); $seg = $hellolog->getSeg();
日志类型
- 有五个相似但不同的方法
$data = 'I can do this all day!'; $hellolog->info($data); // General info, uses print_r() output $hellolog->error($data); $hellolog->warn($data); $hellolog->debug($data); // Extensive debug, uses var_export() output $hellolog->json($_SERVER); // Uses JSON string
- 所有这些方法都有简短的名字。
$hellolog->i($data); $hellolog->d($data); $hellolog->j($data); $hellolog->e($data); $hellolog->w($data);
- 输出可以返回而不是放入日志文件。将true作为第二个参数传递将返回数据。
$output = $hellolog->d($data, true); $output = $hellolog->j($data, true);
输出格式
- 输出数据是一个包含前言和格式化数据的字符串。
- 前言由日志序列号、时间戳、日志类型和数据类型组成。前言如下所示,
[2] [2016-09-03 09:35:10] [DEBUG] [DATATYPE:object]
- 当数据返回时,默认情况下它被包裹在
<pre>
标签中,以增加在浏览器上的可读性。 - 可以通过调用
ugly()
和pretty()
方法分别启用和禁用美观格式。
$hellolog->ugly(); // Disables <pre> wrapper $hellolog->pretty();
- json()方法有一个第三个参数,允许原始输出。原始输出没有前言或美观格式。
$serverJSON = $hellolog->j($_SERVER, true, true); // Returns JSON string of $_SERVER variable.
计数器
- HelloLog有一个内置的计数器。计数从零开始。每次调用count()方法将计数器增加一。
echo $hellolog->count(); // Increments the counter by one
- 计数器有其他操作,如递减、重置和获取当前值。操作字符串作为函数参数传递。对于所有操作,计数器首先执行操作,然后返回计数器值。
echo $hellolog->count('DEC'); // Decrements the counter by one echo $hellolog->count('RESET'); // Resets the counter to zero echo $hellolog->count('GET'); // Get the current counter value
其他
- 打印时间戳。可以通过将
true
作为参数传递来返回时间戳。
$hellolog->time(); echo $hellolog->time(true);
- 打印简单消息
$hellolog->msg('Winter is coming!'); $hellolog->msg(); // This will simply print 'Hello, World!'
这就全部了。谢谢!