Download the PHP package mellivora/logger-factory without Composer
On this page you can find all versions of the php package mellivora/logger-factory. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download mellivora/logger-factory
More information about mellivora/logger-factory
Files in mellivora/logger-factory
Package logger-factory
Short Description Logger factory component of mellivora framework
License MIT
Homepage https://github.com/zhouyl/mellivora-logger-factory
Informations about the package logger-factory
Logger Factory for Monolog
该库基于 monolog 进行开发,针对 monolog
进行了一系列的扩展,及配置增强功能。
1. 安装
2. 使用
根据配置文件实例化
php
/yaml
/json
/ini
/xml
格式通过 buildWith()
方法加载配置,需要 hassankhan/config
库的支持,其中 yaml
格式需要 symfony/yaml
库的支持
创建一个已定义的 logger
根据 default 获取一个未定义的 logger
复制一个 logger
根据 handlers 配置,创建一个 logger
也可以把自己定义的 logger 添加到 factory 中
并以自定义的 logger 做为默认 logger
3. 配置
Logger-Factory
支持灵活的配置方式,同时在引入 hassankhan/config
库后,可以支持 yaml/json/ini/xml
等格式的配置文件,具体请参考配置目录文件。
推荐安装 symfony/yaml
库后使用,因为 yaml
格式使得配置文件看起来更清晰可读。
3.1 配置文件说明
关于 formatte
processor
handler
的相关信息,请查看monolog的帮助说明
配置方法
配置文件中,通过 class
指定类的全名,params
指定参数列表。 参考代码内容
3.1.1 formatters
用于最终输出日志消息的格式,通过对应的命名及参数设置,可以提供给后面的 handlers
使用。
3.1.2 processors
通过加载注册的 processor
将会附加在消息的 extra 字段中。
在 Logger-Factory
中,增加了下面几种 processor
来增强日志的附属信息:
- CostTimeProcessor - 用于获取时间成本消耗,会记录上次写日志到当前写日志消耗的时间
- ProfilerProcessor - 可获取时间成本消耗、内存消耗数据
- ScriptProcessor - 可用于 cli 模式下,获取脚本命令的完整信息
- WebProcessor - 可用于 http 请求下,获取 web 的部分 header 信息
3.1.3 handlers
通过拼装 formatter
/processor
,用于日志输出方式的设定。
在 Logger-Factory
中,增加了下面几种 handler
来进行日志存储:
- NamedRotatingFileHandler - 支持日志自动分片、缓冲写入、根据 channel 调整文件名的功能,支持以下参数设定:
filename
- 日志文件名,可使用 %channel% 来动态生成文件名maxBytes
- 单个日志文件最大尺寸,默认值 100000000 (100mb),0为不限制backupCount
- 保留的日志备份文件数量,默认值 10,0为不保留备份bufferSize
- 缓冲区日志数大小,默认值 0,不开启dateFormat
- 备份日志文件的日期格式,默认 Y-m-dlevel
- 日志级别过滤,默认 debug 级别bubble
- 设置为 false 日志将被过滤,默认 truefilePermission
- 文件权限,默认 0644useLocking
- 是否对日志文件加锁,默认 false
- SmtpHandler - 通过加载
swiftmailer
,来支持方便快捷的邮件发送配置,支持以下参数设定:sender
- 发件人,支持两种格式[email protected]
John <[email protected]>
receivers
- 收件人,数组或字符类型,格式同发件人subject
- 邮件主题certificates
- 服务器认证信息,包含 [host,port,username,password]maxRecords
- 最大记录数,达到该数量后将立即发送邮件,默认为 10level
bubble
3.1.4 loggers
当声明的 logger 不在以下列表中时,默认为 default。参考默认配置:
4. 过滤器的使用
Mellivora\Logger\Logger
新增了 filter
过滤器的支持。
对日志消息进行替换
对日志消息进行过滤
自定义过滤器类
5. 日志路径支持
Mellivora\Logger\LoggerFactory
提供了关于项目根目录设置的方法,用于来协助日志文件目录定位。
在 Mellivora\Logger\Handler\NamedRotatingFileHandler
中,采用了如下方法来获取日志目录
你也可以利用 LoggerFactory::getRootPath()
来定义自己的日志 handler,协助方便的指定日志路径。
License
The MIT License (MIT). Please see License File for more information.