如何禁止jaydebeapi Jars中的日志

时间:2020-07-07 15:01:57

标签: python jar jaydebeapi

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的文档含糊不清。

2 个答案:

答案 0 :(得分:0)

您说过,您尝试过通过日志记录关闭所有日志,但这没有用。试试这一行,告诉我是否可行:

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

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

答案 1 :(得分:0)

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