php - Monolog 可以在 GAE 上使用并且在 Stack Driver 中记录日志级别吗?
问题描述
互联网上有许多帖子表明在谷歌应用引擎(GAE 标准)上使用 Monolog 的正确方法是这样的:
$logger = new Monolog\Logger($name);
$syslogHandler = new \Monolog\Handler\SyslogHandler("Ident_String", LOG_USER, \Monolog\Logger::INFO);
$syslogHandler->setFormatter(new \Monolog\Formatter\JsonFormatter());
$logger->pushHandler($syslogHandler);
break;
$logger->warn("Starting priam import." );
这确实让我记录下来,但级别隐藏在 textPayload 中:
textPayload:“[2020 年 2 月 28 日 11:00:07] 警告:[pool app] 孩子 22 对 stderr 说:“[2020-02-28 06:00:07] match_old.INFO:对获取所有国际。[] []""
并且级别图标始终是一个星号。 有什么改变吗?我在 GAE 标准上使用 php 7.3 运行时。有没有办法在 GAE 上使用 Monolog 让您正确使用堆栈驱动程序?
解决方案
有一个包可以让你将 Monolog 推送到 Stackdriver。
根据文档:
提供的 StackdriverHandler 根据您的日志方法将给定的日志级别复制到 Stackdriver 的严重性中。
它还尊重 context 参数,它允许您使用日志消息发送额外的上下文数据。这将存储在 jsonPayload.data 下的日志消息中。
源代码可以在这里找到monolog-stackdriver
推荐阅读
- javascript - 我可以用javascript调用codeigniter模型函数吗?
- asp.net-core - 在 Visual Studio for Mac (ASP .Net Core) 上无缝编译文件更改
- c# - ActionFilterAttribute 如何访问受保护的 int?来自基本控制器?
- php - PHP curl需要很长时间才能执行,最后它在de nodejs服务器上没有做任何事情
- javascript - React 元素类型无效 - 传递道具时的 ES6 解构语法错误
- r - 在数字之间拆分字符串
- spring - tomcat 找不到外部 jar - java.lang.NoClassDefFoundError: org/opencv/core/Core
- jquery - 如何将今天设置为我的日期选择器默认值?
- java - 尝试使用 java 在远程服务器中连接 HBase 时出现连接问题
- ios - 如何在调用 fetch 之前验证 NSPredicate