php monolog 使用,php – 使用Monolog记录整个数组
如果检查记录器接口(
https://github.com/php-fig/log/blob/master/Psr/Log/LoggerInterface.php),您将看到所有记录方法都以字符串形式显示消息,因此当您尝试使用字符串以外的变量类型进行记录时会收到警告.
我尝试使用处理器以自定义方式格式化阵列,但正如预期的那样,在将变量发送到logger接口后会触发处理器.
记录数组的最脏的方法可能是您选择的任何一种方法;
$logger->info(json_encode($array));
$logger->info(print_r($array, true));
$logger->info(var_export($array, true));
另一方面,您可能希望在单个proccessor中格式化数组,以使用DRY原则集中格式化逻辑.
Json编码数组 – >发送为Json字符串 – > json解码为数组 – >格式 – > json再次编码
CustomRequestProcessor.php
namespace Acme\WebBundle;
class CustomRequestProcessor
{
public function __construct()
{
}
public function processRecord(array $record)
{
try {
//parse json as object and cast to array
$array = (array)json_decode($record['message']);
if(!is_null($array)) {
//format your message with your desired logic
ksort($array);
$record['message'] = json_encode($array);
}
} catch(\Exception $e) {
echo $e->getMessage();
}
return $record;
}
}
在config.yml或services.yml中注册请求处理器,请参阅tags节点以注册自定义通道的处理器.
services:
monolog.formatter.session_request:
class: Monolog\Formatter\LineFormatter
arguments:
- "[%%datetime%%] %%channel%%.%%level_name%%: %%message%%\n"
monolog.processor.session_request:
class: Acme\WebBundle\CustomRequestProcessor
arguments: []
tags:
- { name: monolog.processor, method: processRecord, channel: testchannel }
并在控制器中将您的数组记录为json字符串,
namespace Acme\WebBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class DefaultController extends Controller
{
public function indexAction()
{
$logger = $this->get('monolog.logger.testchannel');
$array = array(3=>"hello" , 1=>"world", 2=>"sf2");
$logger->info(json_encode($array));
return $this->render('AcmeWebBundle:Default:index.html.twig');
}
}
现在,您可以根据需要在中央请求处理器中格式化和记录阵列,而无需在每个控制器中对阵列进行排序/格式化/行走.
php monolog 使用,php – 使用Monolog记录整个数组相关推荐
- php日志 monolog,Laravel 集成的 Monolog 库对日志进行配置和记录实例
本文章为各位介绍一篇关于Laravel 集成的 Monolog 库对日志进行配置和记录的实例,具体的如下希望对各位吸帮助. 对于大型系统而言,日志是不可或缺的模块,Laravel自然也对日志提供了完善 ...
- SQL记录-PLSQL数组
PL/SQL数组 PL/SQL程序设计语言提供叫一种叫做VARRAY的数据结构,其可存储相同类型元素的一个固定大小的连续集合.VARRAY用于存储数据的有序集合,但它往往是更加有用认为数组作为相同类型 ...
- 取多条记录时报数组越界异常_9D sp1使用DMap出图报数组越界异常
根据提供的截图信息无法定位是哪个环节的问题,可以提供一份示例代码给你参考,看看能否正常出图. def mapToPng(): Unit = { val map = new DMap() val wsP ...
- 【发际线大作战】C++学习记录之数组(发际线-1cm)
ciao~ 我又来了惹 基于这周的学习情况 先开个坑 慢慢填(龇牙笑的表情我可太爱了) 今天刚学到一个新知识点 C/C++中从来没有定义过void main(). C++之父Bjarne Strous ...
- (JavaScript学习记录):数组
写在前面:参考哔哩哔哩黑马程序员pink老师教程 地址:https://www.bilibili.com/video/BV1Sy4y1C7ha?t=41&p=4 目录 数组的概念 创建数组 数 ...
- laravel接合monolog实现日志记录到Elasticsearch实践
需求 记录所有前台用户请求返回数据到ES 实践 引用拓展包 $ composer require ruflin/elastica: ^5.0 ruflin/elastica 拓展包说明 Elastic ...
- tp5使用monolog_使用Monolog记录:从Devtools到Slack
tp5使用monolog Logging is an important part of the app development/maintenance cycle. It's not just ab ...
- PHP日志记录工具Monolog
github地址:https://github.com/Seldaek/monolog 使用 Monolog 安装 核心概念 日志级别 配置一个日志服务 为记录添加额外的数据 使用通道 自定义日志格式 ...
- php日志,monolog - PHP 日志神器
monolog - PHP 日志神器 monolog - PHP 日志神器 Monolog 发送你的日志到文件.到sockets.到邮箱.到数据库或(和)者其他网路存储服务(云).这里用了或与和,因为 ...
最新文章
- 验证和训练loss和acc多种情况分析
- 【深夜思考】java百度云资源
- Makefile 中:= ?= += =的区别
- LeetCode Construct the Rectangle
- 扎心了,程序员2017到2019经历了什么?
- 轻拢慢捻,微服务熔断大总管
- python输出玫瑰花_如何用python画玫瑰花
- 2017.10.13 轮状病毒 失败总结
- C语言编译php环境,vscode中C语言编译环境的配置方法(分享)
- php 下载的官方扩展 没有configure文件解决办法
- Flutter之RenderObjectWidget
- Qt echarts 教程(3):qml echarts 的使用方法
- 功率放大器的设计要点
- c语言__100以内的奇数
- java二重积分_用java实现二重积分的计算
- ReentrantLock加锁解锁线程入队源码分析
- PMOS的电流方向以及工作区理解
- 2022讯飞——糖尿病遗传风险检测挑战赛解决方案
- 将数字编号翻译为英文编号(python)实现
- HTTP请求服务器 statuscode的状态码说明 (statuscode==500)