如何禁用neo4j python驱动程序的详细日志记录
我尝试将日志记录更改为neo4j python模块的控制台,以便仅显示关键消息,如下所示:如何禁用neo4j python驱动程序的详细日志记录,python,neo4j,Python,Neo4j,我尝试将日志记录更改为neo4j python模块的控制台,以便仅显示关键消息,如下所示: neo4j_log = logging.getLogger("neo4j.bolt") neo4j_log.setLevel(logging.CRITICAL) 但我仍然得到了每一个成功节点创建的详细日志记录。我正在尝试从Oracle读取数十万的数据,我确信这对性能没有帮助 [#F2D8] S: SUCCESS {'stats': {'labels-added': 1, 'node
neo4j_log = logging.getLogger("neo4j.bolt")
neo4j_log.setLevel(logging.CRITICAL)
但我仍然得到了每一个成功节点创建的详细日志记录。我正在尝试从Oracle读取数十万的数据,我确信这对性能没有帮助
[#F2D8] S: SUCCESS {'stats': {'labels-added': 1, 'nodes-created': 1, 'properties-set': 3}, 'type': 'w', 't_last': 0, 'db': 'neo4j'}
[#F2D8] S: SUCCESS {'t_first': 0, 'fields': [], 'qid': 539}
[#F2D8] C: RUN 'CREATE (p:Product) SET p.id = $id, p.preferred_trade_name = $ppn, p.dosage_form=$df ' {'id': 1221, 'ppn': 'product_x', 'df': 'Blank Values'} {}
Oracle部分并不相关,因为这是一个CYPHER日志输出,但我基本上是这样做的:
def create_graph_nodes_marketing_applications(tx):
print("Processing marketing application")
sql = """
SELECT VERSION_SEQ, DRUG_PRODUCT_ID, REGISTRATION_SET_ID, REGISTRATION_UID, DOSSIER_REF_NUMBER AS REG_NAME_DETAILS,
REGISTRATION_NUMBER, NEXT_RENEWAL_DATE,
CASE WHEN RENEWAL_NOT_REQUIRED = 'Y' Then 'No' ELSE CASE WHEN RENEWAL_NOT_REQUIRED = 'N' Then 'Yes' ELSE NULL END END AS RENEWAL_REQUIRED,
APPLICATION_TYPE,
APPLICATION_STAGE,
COUNTRY_DISPLAY_LABEL,
DISTRIBUTION_TYPE AS PROCEDURE_TYPE,
DATA_STATE
FROM DIM_REGISTRATION_SET WHERE DATA_STATE = 'C' AND FLAG_PASSIVE='0'
AND APPLICATION_TYPE = 'Marketing Application'
"""
cursor_ariel.execute(sql)
for row in cursor_ariel.fetchall():
r = reg(cursor_ariel, row, False)
tx.run("""
CREATE (m:MarketingApplication:Registration)
SET m.id = $id,
m.REGISTRATION_SET_ID = $rsid,
m.DRUG_PRODUCT_ID = $dpid,
m.REGISTRATION_UID = $ruid,
m.COUNTRY = $country,
m.PROCEDURE_TYPE = $proc,
m.REG_NAME_DETAILS = $rnd,
m.APPLICATION_TYPE = $apptype,
m.APPLICATION_STAGE = $appstage,
m.DATA_STATE = $state,
m.RENEWAL_REQUIRED = $renewal,
m.NEXT_RENEWAL_DATE = $renewal_date""",
id = r.VERSION_SEQ,
rsid = r.REGISTRATION_SET_ID,
dpid = r.DRUG_PRODUCT_ID,
ruid = r.REGISTRATION_UID,
country = r.COUNTRY_DISPLAY_LABEL,
proc = r.PROCEDURE_TYPE,
rnd = r.REG_NAME_DETAILS,
apptype = r.APPLICATION_TYPE,
appstage = r.APPLICATION_STAGE,
state = r.DATA_STATE,
renewal = r.RENEWAL_REQUIRED,
renewal_date = r.NEXT_RENEWAL_DATE
)
基于此,我相信日志记录程序名为“neo4j”。感谢您发布您的问题!您提到了Neo4j驱动程序并从Oracle读取数据,因此我不确定是否完全理解您的设置。您介意添加一些详细信息吗?我正在使用cx_Oracle在游标中读取数据,迭代每一行,并在neo4j中执行CREATE语句来创建节点,使用每个Oracle行的详细信息。Oracle部分与此无关,更重要的是neo4j驱动程序在每次成功的CYPHER事务中都会向控制台发送消息。我不是100%确定,但如果您将记录器名称更改为“neo4j”,它会工作吗?另外,您使用的驱动程序版本是什么?根据pythonjustneo4j的说法,4.1.dev0似乎可以做到这一点,谢谢;-)