monolog handler用哪个
Handlers
记录日志到文件与系统日志(syslog)
- StreamHandler:记录日志到任何 PHP stream,用它来记录到文件。
- RotatingFileHandler: 每天一个文件,会自动删除比
$maxFiles
老的文件,这只是一个很随意的方案, You should use logrotate for high profile setups though。 - SyslogHandler: 记录到系统日志
- ErrorLogHandler: Logs records to PHP's error_log()function.
作者:Kaiyulee
链接:https://www.jianshu.com/p/e6b26eb44e70
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
记录到指定server与网络日志
接着看看
SocketHandler: Logs records to sockets, use this for UNIX and TCP sockets. See an example.
AmqpHandler: Logs records to an amqp compatible server. Requires the php-amqp extension (1.0+).
GelfHandler: Logs records to a Graylog2 server.
CubeHandler: Logs records to a Cube server.
RavenHandler: Logs records to a Sentry server using raven.
ZendMonitorHandler: Logs records to the Zend Monitor present in Zend Server.
NewRelicHandler: Logs records to a NewRelic application.
LogglyHandler: Logs records to a Loggly account.
RollbarHandler: Logs records to a Rollbar account.
SyslogUdpHandler: Logs records to a remote Syslogd server.
LogEntriesHandler: Logs records to a LogEntries account.
开发环境中,利用浏览器扩展
装扩展
FirePHPHandler: Handler for FirePHP, providing inline console
messages within FireBug.
ChromePHPHandler: Handler for ChromePHP, providing inline console
messages within Chrome.
BrowserConsoleHandler: Handler to send logs to browser's Javascript console
with no browser extension required. Most browsers supporting console
API are supported.
PHPConsoleHandler: Handler for PHP Console, providing inline console
and notification popup messages within Chrome.
记录到数据库
顾名思义
RedisHandler: Logs records to a redis server.
MongoDBHandler: Handler to write records in MongoDB via a Mongo extension connection.
CouchDBHandler: Logs records to a CouchDB server.
DoctrineCouchDBHandler: Logs records to a CouchDB server via the Doctrine CouchDB ODM.
ElasticSearchHandler: Logs records to an Elastic Search server.
DynamoDbHandler: Logs records to a DynamoDB table with the AWS SDK.
特殊的Handler
慢慢看
FingersCrossedHandler: A very interesting wrapper. It takes a logger as parameter and will accumulate log records of all levels until a record exceeds the defined severity level. At which point it delivers all records, including those of lower severity, to the handler it wraps. This means that until an error actually happens you will not see anything in your logs, but when it happens you will have the full information, including debug and info records. This provides you with all the information you need, but only when you need it.
DeduplicationHandler: Useful if you are sending notifications or emails when critical errors occur. It takes a logger as parameter and will accumulate log records of all levels until the end of the request (or flush()
is called). At that point it delivers all records to the handler it wraps, but only if the records are unique over a given time period (60seconds by default). If the records are duplicates they are simply discarded. The main use of this is in case of critical failure like if your database is unreachable for example all your requests will fail and that can result in a lot of notifications being sent. Adding this handler reduces the amount of notifications to a manageable level.
WhatFailureGroupHandler: This handler extends the GroupHandler ignoring exceptions raised by each child handler. This allows you to ignore issues where a remote tcp connection may have died but you do not want your entire application to crash and may wish to continue to log to other handlers.
BufferHandler: This handler will buffer all the log records it receives until close()
is called at which point it will callhandleBatch()
on the handler it wraps with all the log messages at once. This is very useful to send an email with all records at once for example instead of having one mail for every log record.
GroupHandler: This handler groups other handlers. Every record received is sent to all the handlers it is configured with.
FilterHandler: This handler only lets records of the given levels through to the wrapped handler.
SamplingHandler: Wraps around another handler and lets you sample records if you only want to store some of them.
NullHandler: Any record it can handle will be thrown away. This can be used to put on top of an existing handler stack to disable it temporarily.
PsrHandler: Can be used to forward log records to an existing PSR-3 logger
TestHandler: Used for testing, it records everything that is sent to it and has accessors to read out the information.
HandlerWrapper: A simple handler wrapper you can inherit from to create your own wrappers easily.
Formatters
✪ 为常用
LineFormatter: Formats a log record into a one-line string. ✪
HtmlFormatter: Used to format log records into a human readable html table, mainly suitable for emails.✪
NormalizerFormatter: Normalizes objects/resources down to strings so a record can easily be serialized/encoded.
ScalarFormatter: Used to format log records into an associative array of scalar values.
JsonFormatter: Encodes a log record into json.✪
WildfireFormatter: Used to format log records into the Wildfire/FirePHP protocol, only useful for the FirePHPHandler.
ChromePHPFormatter: Used to format log records into the ChromePHP format, only useful for the ChromePHPHandler.
GelfMessageFormatter: Used to format log records into Gelf message instances, only useful for the GelfHandler.
LogstashFormatter: Used to format log records into logstash event json, useful for any handler listed under inputs here.
ElasticaFormatter: Used to format log records into an Elastica\Document object, only useful for the ElasticSearchHandler.
LogglyFormatter: Used to format log records into Loggly messages, only useful for the LogglyHandler.
FlowdockFormatter: Used to format log records into Flowdock messages, only useful for the FlowdockHandler.
MongoDBFormatter: Converts \DateTime instances to \MongoDate and objects recursively to arrays, only useful with the MongoDBHandler.
Processors
PsrLogMessageProcessor: Processes a log record's message according to PSR-3 rules, replacing {foo}
with the value from $context['foo'].
IntrospectionProcessor: Adds the line/file/class/method from which the log call originated.
WebProcessor: Adds the current request URI, request method and client IP to a log record.
MemoryUsageProcessor: Adds the current memory usage to a log record.
MemoryPeakUsageProcessor: Adds the peak memory usage to a log record.
ProcessIdProcessor: Adds the process id to a log record.
UidProcessor: Adds a unique identifier to a log record.
GitProcessor: Adds the current git branch and commit to a log record.
TagProcessor: Adds an array of predefined tags to a log record.
作者:Kaiyulee
链接:https://www.jianshu.com/p/e6b26eb44e70
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
monolog handler用哪个的更多相关文章
- The PHP Package 之 monolog[转]
Monolog 发送你的日志到文件.到sockets.到邮箱.到数据库或(和)者其他网路存储服务(云).Monolog可以做到同时保存到一个或多个存储介质(后面的栈冒泡处理). 安装 $ comp ...
- Monolog - Logging for PHP 5.3+
Monolog 是PHP的一个日志类库.相比于其他的日志类库,它有以下的特点: 功能强大.可以把日志发送到文件.socket.邮箱.数据库和各种web services. 遵循 PSR3 的接口规范. ...
- centos 环境下monolog+php 方案
1.在项目中,日志系统有多重要详细所有程序员都知道,monolog就是一个最好的解决方案,有各种级别,各种日志存储方式,具体可以上monolog官方了解http://monolog.ow2.org/ ...
- 这可能是php世界中最好的日志库——monolog
由于一些历史原因,php中并没有内建的日志接口,故长期以来也没一个功能完备并且应用广泛的日志库.在我的工作生涯中,如果系统需要记录一些应用日志的话,基本上就是封装一个日志类,然后把一些要记录的字段写入 ...
- 记一次Monolog的BufferHandler使用
laravel中可以设置自定义的日记channel(config/logging中设置),按照laravel-china的一篇文章,把log按一定格式并且以批量的方式写入日志文件: https://l ...
- PHP 依赖工具 monolog的使用
<?phprequire 'vendor/autoload.php'; //自动加载类库 use Monolog\Logger;use Monolog\Handler\StreamHandler ...
- monolog 应该是世界上最好的日志插件了
引入 composer require monolog/monolog 官网 https://github.com/Seldaek/monolog 创建工具类 <?php /** * Creat ...
- monolog使用
安装composer curl -sS https://getcomposer.org/installer | phpmv composer.phar /usr/local/bin/composer ...
- php monolog 的写日志到unix domain socket 测试终于成功
在另外一个客户端执行 php s.php后, 通过nc -lU /tmp/tg.sck 建立的unix domain socket 有接收到消息. <?php require 'vendor/a ...
随机推荐
- html基础:css样式2
1.字体边框基本设置 <!--border边框:solid实线,red红色,1px粗--> <!--font-weight: bolder字体加粗 font-size:字体大小--& ...
- HTTP 协议类
HTTP 协议的主要特点 简单快速:每个资源的URL是固定的 灵活:在每个 http 协议中都有一个头部分有一个数据类型,通过一个 http 协议就可以完成不同数据类型的传输 无连接:连接一次就好断掉 ...
- 【NOIP2013模拟】太鼓达人
题目描述 七夕祭上,Vani牵着cl的手,在明亮的灯光和欢乐的气氛中愉快地穿行.这时,在前面忽然出现了一台太鼓达人机台,而在机台前坐着的是刚刚被精英队伍成员XLk.Poet_shy和lydrainbo ...
- MySQL关于useSSL的问题,会弹出警告
我在手动配置dbcp时,执行数据库相关的操作时,报错以下: Fri Aug 28 21:10:19 CST 2020 WARN: Establishing SSL connection without ...
- Linux实战(19):Shell交互式read 用法
read 用法有好几种,我在实战过程中用到了 -p,记一笔以防不用忘记了. 实例 #!/bin/bash echo "检测IP是否被占用" while read -p " ...
- 吴恩达-机器学习+Logistic回归分类方案
- 用Docker swarm快速部署Nebula Graph集群
用Docker swarm快速部署Nebula Graph集群 一.前言 本文介绍如何使用 Docker Swarm 来部署 Nebula Graph 集群. 二.nebula集群搭建 2.1 环境准 ...
- BUU reverse xxor
下载下来的是个elf文件,因为懒得上Linux,直接往IDA里扔, 切到字符串的那个窗口,发现Congratulation!,应该是程序成功执行的表示, 双击,按'x',回车跟入 找到主函数: 1 _ ...
- Python-全局函数(内置方法、内置函数)
Python有很多内置方法,这些都全局可用 abs() 求数值的绝对值,如果是复数则返回其模 print(abs(-17), abs(30.2), abs(3+4j)) # Python中复数表示为 ...
- Harmony OS 开发避坑指南——DevEco Device Tool 安装配置
Harmony OS 开发指南--DevEco Device Tool 安装配置 本文介绍如何在Windows主机上安装DevEco Device Tool工具. 坑点总结: 国内部分网络环境下,安装 ...