You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Memgraph日志中记录查询模块过程的消息?

调试Memgraph自定义Python查询模块的日志记录方法

针对你在MacOS上使用Memgraph Platform 2.4.0 Docker镜像开发自定义Python查询模块时,无法通过print或简单logger输出调试信息的问题,以下是几种可行的日志记录方案:

1. 使用Memgraph内置的Python API日志功能

Memgraph的Python查询模块API(mgp)提供了内置日志工具,调用后日志会直接输出到Memgraph的容器日志中:

import mgp

@mgp.read_proc
def your_custom_proc(context: mgp.ProcCtx) -> mgp.Record(result=str):
    # 记录调试信息
    mgp.logger.info(f"当前上下文信息: {context}")
    mgp.logger.debug(f"需要调试的变量值: {some_variable}")
    # 业务逻辑代码
    return mgp.Record(result="success")

执行以下Docker命令查看容器日志:

docker logs <memgraph-container-name>

注意:需确保Memgraph日志级别设置为info或更低(如debug),才能看到对应日志内容。

2. 将日志写入挂载到本地的文件

通过Docker卷挂载,把容器内的日志目录映射到本地,再在Python模块中直接写入文件:

  1. 启动Memgraph容器时添加卷挂载参数:
docker run -d -p 7687:7687 -p 7444:7444 -v /your/local/logs/path:/memgraph-logs memgraph/memgraph-platform:2.4.0
  1. 在Python模块中写入日志文件:
import mgp
import datetime

@mgp.read_proc
def your_custom_proc() -> mgp.Record(result=str):
    debug_value = "需要查看的变量内容"
    # 写入挂载目录下的日志文件
    with open("/memgraph-logs/custom-module-debug.log", "a") as log_file:
        log_file.write(f"[{datetime.datetime.now()}] 调试值: {debug_value}\n")
    return mgp.Record(result="success")

之后直接在本地/your/local/logs/path目录下查看custom-module-debug.log即可。

3. 调整Memgraph的日志级别以捕获更多细节

默认情况下Memgraph日志级别较高,可能过滤掉调试日志。启动容器时添加参数将日志级别设为debug,获取最详细的日志输出:

docker run -d -p 7687:7687 -p 7444:7444 memgraph/memgraph-platform:2.4.0 --log-level=debug

这样不仅能看到模块加载的错误信息,还能捕获更多运行时的调试输出。

内容的提问来源于stack exchange,提问作者KateLatte

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 20:05:31