【问题标题】:How to Suppress Logs from jaydebeapi Jars如何抑制来自 jaydebeapi 罐子的日志
【发布时间】:2020-07-07 15:01:57
【问题描述】:
import os

import pandas as pd
from jaydebeapi import connect


def sql_query(query: str) -> pd.DataFrame:
    jclassname = "classname"

    url = "urlToCluster"

    driver_args = {"keys":"values"}

    path = "pathToJars"
    jars = [f"{path}{item}" for item in os.listdir(path)]
    with connect(jclassname=jclassname, url=url, driver_args=driver_args, jars=jars) as engine:
        df = pd.read_sql_query(query, engine)

    return df

每当我连接到我的 sql jar 时,都会有大量的调试日志输出。我似乎无法弄清楚如何抑制这些日志。我尝试使用日志记录来关闭所有日志,但这似乎不起作用。我不知道该怎么做。我觉得它与 jaydebeapi 和 java 有关。 jaydebeapi 的文档在其功能上含糊不清。

【问题讨论】:

  • 你有没有运气抑制调试日志输出?

标签: python jar jaydebeapi


【解决方案1】:

您说您尝试过记录以关闭所有日志,但没有成功。试试这条线,告诉我它是否有效:

import logging
logging.getLogger("jaydebeapi").setLevel(logging.WARNING)

这应该只显示来自 API 的警告。

【讨论】:

  • 感谢您的回复。它没有用。感觉就像 jar 文件正在强制他们的日志通过。我很好奇是否有办法编辑 jars 或 java 环境本身来抑制这种情况。
【解决方案2】:

Jaydebeapi 几乎没有日志记录。日志来自 Java JDBC 驱动程序。您必须了解如何在 Java 端禁用它们。很可能您必须设置一些系统属性。除非 Jaydebeapi 添加对系统参数或系统属性的直接支持,否则您必须提前通过 JPype 手动启动 java 来设置它们,并在使用 Jaydebeapi 之前将它们传递给 JPype.startJVM() 调用。

【讨论】:

    猜你喜欢
    • 2017-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多