本文介绍如何在PHP运行环境下打印和查看日志。
打印日志
函数计算内置了logger模块,在使用内置运行时创建的函数中,您可以通过$GLOBALS['fcLogger']
使用该内置logger模块,将打印的内容收集到创建服务时指定的日志服务Logstore中。使用其他方式创建的函数,您可以使用PHP提供的方法打印日志。
日志级别
您可以通过setLevel方法改变日志级别,其中日志级别从高到低如下所示。
日志级别 | Level | 接口 | 描述 |
EMERGENCY | 600 |
| 紧急日志 |
ALERT | 550 |
| 警示日志 |
CRITICAL | 500 |
| 严重警告 |
ERROR | 400 |
| 出错信息 |
WARNING | 300 |
| 警告信息 |
NOTICE | 250 |
| 通知及常规日志 |
INFO(默认) | 200 |
| 详细输出信息 |
DEBUG | 100 |
| 调试日志 |
使用内置日志模块打印日志
使用该方法打印的每条日志中都包含时间、RequestId和日志级别等信息。打印日志的示例如下:
<?php
function handler($event, $context) {
$logger = $GLOBALS['fcLogger'];
$logger->info('hello world');
$logger->critical('world hello');
$logger->setLevel(500);
$logger->info('hello world 2');
$logger->critical('world hello 2');
return 'hello world';
}
上述例子中,首先使用默认的日志级别输出了2条日志,然后修改了默认日志级别,只输出1条日志。
执行以上代码输出的日志内容如下所示:
FunctionCompute php7.2 runtime inited.
FC Invoke Start RequestId: 1-659xxxxx-16cxxxxx-39659xxxxxx
2024-01-04 10:50:44 1-659xxxxx-16cxxxxx-39659xxxxxx [INFO] hello world
2024-01-04 10:50:44 1-659xxxxx-16cxxxxx-39659xxxxxx [CRITICAL] world hello
2024-01-04 10:50:44 1-659xxxxx-16cxxxxx-39659xxxxxx [CRITICAL] world hello 2
\nFC Invoke End RequestId: 1-659xxxxx-16cxxxxx-39659xxxxxx
使用打印函数打印日志
使用该方法打印日志会将内容原样输出到日志中。代码示例如下所示。
<?php
function handler($event, $context) {
var_dump("abcd");
echo "abcd 2\n";
fwrite(STDERR, "error\n");
return 'hello world';
}
输出如下:
FunctionCompute php7.2 runtime inited.
FC Invoke Start RequestId: 1-659xxxxx-165xxxxx-455a04xxxxxx
/code/index.php:4:
string(4) "abcd"
abcd 2
error
\nFC Invoke End RequestId: 1-659xxxxx-165xxxxx-455a04xxxxxx
上述例子中,打印函数也可以替换为其他输出到标准输出、标准错误的函数。
查看日志
函数执行完成后,您可以在函数详情页的调用日志页签查看日志信息。具体操作和说明,请参见查看调用日志。