webandco / flow-logrotate
此包最新版本(0.0.3)没有提供许可证信息。
0.0.3
2023-08-28 10:11 UTC
Requires
- cesargb/php-log-rotation: ^2.5.0
- neos/flow: *
README
旋转日志和异常文件
安装
composer require webandco/flow-logrotate
配置
日志文件
对于日志文件轮转,我们使用 cesargb/php-log-rotation。
有许多默认的日志文件,例如
- systemLogger
- securityLogger
- sqlLogger
- i18nLogger
例如,要旋转 systemLogger,您可以设置配置如下
Neos:
Flow:
log:
psr3:
Neos\Flow\Log\PsrLoggerFactory:
systemLogger:
default:
class: Webandco\Logrotate\Log\Backend\RotateBackend
options:
compress: true
truncate: false
将 Neos.Flow.psr3.Neos\Flow\Log\PsrLoggerFactory.systemLogger
替换为您想要旋转的任何记录器,例如 Neos.Flow.psr3.Neos\Flow\Log\PsrLoggerFactory.sqlLogger
。
异常
异常日志轮转是通过以下方式启用的
Neos:
Flow:
log:
throwables:
storageClass: Webandco\Logrotate\Log\ThrowableStorage\CleanupStorage
optionsByImplementation:
Webandco\Logrotate\Log\ThrowableStorage\CleanupStorage:
storagePath: '%FLOW_PATH_DATA%Logs/Exceptions'
maximumDirSize: 10485760
logFilesToKeep: 3
compress: true
compressedArchivesToKeep: 10
compressInterval: 'P1D'
compressionAlgorithm: 'gz'
archiveName:
prefix: 'Exceptions.'
dateTime: 'Y-m-d'
postfix: '.tar.gz'
# Pattern for archives of interest
archiveGlob: 'Exceptions.*.tar.gz'
# Pattern for files of interest
glob: '*.txt'
由于每个异常都写入一个单独的异常 txt 文件,因此这些文件不会轮转,而是自动删除。如果启用了压缩(使用 compress: true
),那么如果记录异常,则将所有异常文件压缩到归档中,除了那些被认为是当前(即 now()
)压缩间隔的异常文件。
这意味着,如果您有 compressInterval: 'P1D'
并且发生异常,它将保持原样。如果明天再次发生异常,昨天的第一个异常将被压缩,而当前的异常将保持原样在异常 txt 中。
测试
要测试设置,您可以通过隐藏的 CLI 命令生成日志消息。
要测试异常,请使用
./flow rotate:log --exception --howmany=2
要测试日志消息,请使用
./flow rotate:log --howmany=2 --level=error --words=5 --logger=systemLogger
logger
的可能选项是 Settings 中 Neos.Flow.log.psr3.Neos\Flow\Log\PsrLoggerFactory
中找到的选项
- systemLogger
- securityLogger
- sqlLogger
- i18nLogger 和可能的自定义记录器配置。