日志对于排除和调试 WordPress 网站上的问题非常有帮助。查看访问日志和 WordPress 错误日志非常简单。只需按照以下说明操作即可。
如何查看访问和 WordPress 错误日志
查看访问日志和 WordPress 错误日志有几种不同的方法,一种是通过服务器仪表板,另一种是直接下载原始日志文件。
选项 1 – 服务器控制面板
以服务器提供商 Kinsta 为例,您可以在 MyKinsta 控制面板中访问日志。这是一种快速调试的方法,无需启动 FTP 客户端或命令行。
只需点击进入您的一个 WordPress 网站,然后在左侧菜单中点击 Logs。在下拉菜单中选择您的偏好,即可查看 error.log、kinsta-cache-perf.log 和 access.log 文件。
error.log 文件
在 MyKinsta 日志查看器中查看 error.log 文件。
kinsta-cache-perf.log 文件
在 MyKinsta 日志查看器中查看 kinsta-cache-perf.log 文件。
access.log 文件
在 MyKinsta 日志查看器中查看 access.log 文件。
选项 2 – 通过 FTP 查看原始访问和 WordPress 错误日志
查看日志的第二种方法是下载原始日志文件。首先,您需要通过 SFTP 连接到您的网站。然后在根目录下,你会看到一个名为 “logs” 的文件夹。
文件夹中包含访问日志、WordPress 错误日志和 Kinsta 缓存日志。
- access.log
- error.log
- kinsta-cache-perf.log
对于较旧的日志存档,会自动创建 Gzip (.gz) 备份。有关 WordPress 的其他调试信息,请参阅代码集。
选项 3 – 在 wp-config.php 文件中启用错误日志
查看 WordPress 错误日志的最后一个方法是在 wp-config.php
文件中启用它们。首先,你需要通过 SFTP 连接到你的网站。然后下载你的 wp-config.php
,这样你就可以编辑它了。注意:一定要先备份该文件!
下载 wp-config.php 文件
找到写着 /* That's all, stop editing! Happy blogging. */
,并在其前添加以下内容(如下所示):
define( 'WP_DEBUG', true );
WP_DEBUG
如果上述代码已存在于 wp-config.php
文件中,但设置为 “false”,只需将其更改为 “true” 即可。这将启用调试模式。注意:如果存在警告或错误,你也会在 WordPress 管理中看到它们。
然后,您可以在 WP_DEBUG 行后添加以下代码(如下所示),启用调试日志,将所有错误发送到一个文件:
define( 'WP_DEBUG_LOG', true );
WP_DEBUG_LOG
保存更改并重新上传至服务器。错误信息将被记录到 /wp-content/
文件夹中的 debug.log
文件中。如果由于某种原因看不到该文件,可以创建一个。
选项 4 – 使用 Kinsta API 查看日志
部分服务器还提供专门的API工具以实现服务器相关任务管理。比如 Kinsta API,就是一个功能强大的工具,可让您以编程方式与 Kinsta 服务(如托管 WordPress 网站)进行交互。API 还有一个端点,您可以用它来获取网站日志。
要使用 Kinsta 的 API,您必须在 MyKinsta 中至少拥有一个 WordPress 网站、应用程序或数据库账户。您还需要生成一个 API 密钥来验证和访问您的账户。
获得 API 密钥后,要使用 API 访问网站日志,您需要指定网站环境 ID。您可以通过 get site environment 端点以编程方式获取网站的环境 ID,该端点会返回网站环境的详细信息,包括其 ID:
{ "site": { "environments": [ { "id": "54fb80af-576c-4fdc-ba4f-b596c83f15a1", "name": "first-site", "display_name": "First site", "is_blocked": false, "id_edge_cache": "54fb80af-576c-4fdc-ba4f-b596c83f15a1", "cdn_cache_id": "54fb80af-576c-4fdc-ba4f-b596c83f15a1", "is_premium": false, "domains": [ { "id": "54fb80af-576c-4fdc-ba4f-b596c83f15a1", "name": "example.com", "type": "live" } ], "primaryDomain": { "id": "54fb80af-576c-4fdc-ba4f-b596c83f15a1", "name": "example.com", "type": "live" }, "ssh_connection": { "ssh_port": "808080", "ssh_ip": { "external_ip": "1xx.1xx.1xx.1xx" } }, "container_info": { "id": "54fb80af-576c-4fdc-ba4f-b596c83f15a1", "php_engine_version": "php8.0" } } ] } }
获得网站的环境 ID 后,就可以发送 GET
请求到
https://api.kinsta.com/v2/sites/environments/{env_id}/logs?file_name=error&lines=100
该请求包括要获取的日志文件(access
, error
, 或 kinsta-cache-perf
)以及要获取的日志行数:
curl -i -X GET 'https://api.kinsta.com/v2/sites/environments/{env_id}/logs?file_name=access&lines=100' -H 'Authorization: Bearer '
将返回一个字符串,其中包含指定的日志行数:
{ "environment": { "container_info": { "logs": "mysite.kinsta.cloud ::1 [07/Dec/2023:00:02:01 +0000] HEAD "/wp-cron.php?server_triggered_cronjob" HTTP/2.0 200 "-" "curl/7.68.0" - "/wp-cron.php" - - 230 0.017 0.018nmysite.kinsta.cloud ::1 [07/Dec/2023:00:17:01 +0000] HEAD "/wp-cron.php?server_triggered_cronjob" HTTP/2.0 200 "-" "curl/7.68.0" - "/wp-cron.php" - - 230 0.139 0.139nmysite.kinsta.cloud ::1 [07/Dec/2023:00:32:01 +0000] HEAD "/wp-cron.php?server_triggered_cronjob" HTTP/2.0 200 "-" "curl/7.68.0" - "/wp-cron.php" - - 230 0.016 0.016nmysite.kinsta.cloud ::1 [07/Dec/2023:00:47:01 +0000] HEAD "/wp-cron.php?server_triggered_cronjob" HTTP/2.0 200 "-" "curl/7.68.0" - "/wp-cron.php" - - 230 0.015 0.015n" } } }
然后就可以格式化输出,用 n
换行符分隔每一行。例如,您可以使用 JavaScript 的 split()
方法:
const logsData = { "environment": { "container_info": { "logs": "string" } } }; const logsString = logsData.environment.container_info.logs; // Splitting the logs string into an array of log entries based on the newline character 'n' const logEntries = logsString.split('n'); console.log(logEntries);