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 ...
随机推荐
- Swift入门
Swift 入门 简介 Swift 语言由苹果公司在 2014 年推出,用来撰写 OS X 和 iOS 应用程序 2014 年,在 Apple WWDC 发布 历史 2010 年 7 月,苹果开发者工 ...
- charles常用功能 request和response(简单的操作)
先介绍一个修改request请求参数值的方法吧 第一步: 拷贝完成后还需要配置一下: 先添加一个: 然后下一步: 最后点击OK,就可以开始操作request和response数据了 先修改reques ...
- PHP基础之面向对象篇
前言 前面写的都是运算符.流程控制.排序查找等,下面说一说面向对象的一些内容.这是前面写的,有兴趣可以去看一看. PHP入门之类型与运算符 PHP入门之流程控制 PHP入门之函数 PHP入门之数组 P ...
- junit源码之Runner
Runner 定义了执行用例的执行器方法. public abstract class Runner implements Describable { /* 获取描述 */ public abstra ...
- 预科班D11
2020.09.21星期一 预科班D11 学习内容: 一.基本数据类型及内置方法 1.整形int及浮点型float + - * / // ** % > < >= <= 2.字符 ...
- Python推导式(列表推导式、元组推导式、字典推导式和集合推导式)
列表表达式 a_range = range(10) # 对a_range执行for表达式 a_list = [x * x for x in a_range] # a_list集合包含10个元素 pri ...
- 刷题[NPUCTF2020]ezlogin
xpath注入 xpath注入这篇文章有关于xpath很详细的解答,包括原理等,详细了解请见此篇. 我个人再稍微讲一讲: 首先它的网站目录下会有一个xml文件,大概格式是这样: <?xml ve ...
- IntelliJ IDEA 2020.2 x64 最新破解教程有效期到2089年 完全免费分享
作者:极客小俊 一个专注于web技术的80后 我不用拼过聪明人,我只需要拼过那些懒人 我就一定会超越大部分人! CSDN@极客小俊,原创文章, B站技术分享 B站视频 : Bilibili.com 个 ...
- Logback自定义日志颜色
片段 1 片段 2 LogbackColorful.java package cn.mrxionge.netdemo; import ch.qos.logback.classic.Level; imp ...
- 如何写出优美的 JavaScript 代码?
一.变量相关 (1)变量数量的定义 NO:滥用变量 let kpi = 4; // 定义好了之后再也没用过 function example() { var a = 1; var b = 2; var ...