lliure / lllog
Requires
- php: >=7.4 || ^8.0
- lliure/lliure-core: ^v5.3 || ^v6
README
Lllog 组件旨在根据用户定义的规范存储系统执行日志。每次调用组件时都会记录日志,提供所有所需步骤的实时历史。
使用方法
使用 lllogs 有两种方法:简单方式和高级方式。两者都需要初始化并将初始配置传递给对象。
$log = new Logger();
$log->setApp('{app name}');
$log->setModule('{module name}');
$log->setAuthor('{author name}');
app:指代应用程序,如果在名为 "Virtual Store" 的应用程序中进行日志记录,则 app 属性应设置为 virtualStore。
- 示例:
`$log->setApp('VirtualStore');
`
- 示例:
module:表示记录日志的模块。例如,如果 Virtual Store 应用程序正在记录 Products,则建议模块为 products。
- 示例:
`$log->setModule('products');
`
- 示例:
author:分配给使用系统的用户。
- 示例:
`$log->setAuthor('Leonidas');
`
- 示例:
简单使用
在简单使用中,开发者只需使用记录方法之一。
这些可以是: `info|success|error|warning|debug`
- type:日志类型可以是 info、success、error、warning 或 debug。
- 示例:
`$log->[info|success|error|warning|debug]();
` - 也可以稍后使用 changeStatus() 方法进行更改,使用
`$returnLog->changeStatus(Logger::[info|success|error|warning|debug]);
`
- 示例:
使用如下:
`$log->info(string {message}, string {detail}, string {key}, string|boolean {expire}, string {jsonData}, string {alias} )
`
- message:日志的主要文本,也可以是标题。
- detail:可以在此处记录日志执行信息。
- key:一个标识此日志属于谁的参数,例如 ID 或参考。
- expire:定义此日志条目的持续时间。它可以传递为 DateInterval() 表示法或布尔值。如果为 false,则持续时间为三个月(P3M),如果为 true,则持续 14 天(P14D)。
- jsonData:可以包含与记录日志相关的数据 JSON,可用于报告。
- alias:此字段负责对日志条目进行别名处理,可以在报告中查询和使用。
不可操作字段
- token:为每个实例化对象生成一个令牌。所有使用此对象进行的记录都将收到相同的令牌。
- datetime:记录日志记录的日期和时间。
高级使用
在此使用中,可以修改日志条目,记录更多信息并更改其类型,以及其他功能。
要这样做,在记录日志后,将其内容返回到变量中。此变量是该日志条目的对象,例如 `
$info = $log->info('Test log');`
。
之后,您可以使用一些方法来编辑此条目。
- step():使用此方法,您将在 data 字段中插入记录(与 detail 相同)。您可以多次调用它,传入的信息将累积在日志条目中。
- changeStatus():此方法更改日志类型,可以是
`Logger::[INFO|SUCCESS|ERROR|WARNING|DEBUG]
`。 - key():使用 key() 方法,您可以通知条目的键。
- alias():使用 alias() 方法,您可以指定正在处理的条目的别名。
- expire():在 expire() 方法中,开发人员可以指定条目可用的期间,类似于 expire 参数,可以是 DateInterval() 或布尔值。
- jsonData()方法:在此方法中,开发者可以指定一个JSON作为条目的输入,该输入可以在未来的报告中使用。
上述方法可以在定义日志条目前进行链式调用。
示例:`$log->key('21')->step('产品已成功注册到数据库')->success('记录产品');
`
在这种情况下,始终将{info|success|error|warning|debug}()记录方法作为序列中的最后一个使用。
stash()方法
stash()方法可用于存储一系列信息,这些信息将在发生记录时立即卸载到日志的数据/详细部分。
示例
$log->stash('Building address');
$log->stash('Clearing phone');
$log->info('Sending data', 'Data sent: {...}', 22);
使用示例
$log = new Logger();
$log->setApp('virtualStore');
$log->setModule('products');
$log->setAuthor('Leonidas');
// Simple usage mode
$log->stash('stash test');
$log->info('bla bla bla', 'info test one', null, false, 1);
// Advanced usage mode
$log->stash('stash test');
$info = $log->key('365984')->info('Test log');
$info->step('prepare data');
$info->changeStatus(Logger::SUCCESS)->step('Successfully changed');