python - 如何将红移控制台输出传递给记录器?
问题描述
我想使用psycopg2
并执行一些 SQL 语句连接到 redshift 服务器。我在气流服务器上安排这个并通过 PythonOperator 运行。我希望将 redshift 服务器控制台输出(STOUT) 传递回LoggingConnection
,但它似乎只传递了执行的查询。
这样做的目的是能够调试上游问题并记录 ETL 元数据(在作业的上下文中)。这可能吗??
实例化一个logger
对象并conn
使用记录器进行初始化。这有效,但除了执行的查询之外没有提供任何信息。
import pandas as pd
import logging
import psycopg2 as pg
import sys
from psycopg2.extras import LoggingConnection
conn = pg.connect(<.....>)
conn.autocommit = True
logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(__name__)
logger.addHandler(logging.StreamHandler(sys.stdout))
conn.initialize(logger)
cur.execute("INSERT INTO tableA <select...>")
# Example of what I want to Log:
# [2019-07-15 15:59:51] 2000 rows inserted... in 2 s 318 ms (execution: 2 s 279 ms, fetching: 39 ms)
我希望记录器从服务器控制台传递所有输出,模拟如果他们在本地运行它会看到什么。
解决方案
推荐阅读
- text-to-speech - 在 Windows 7 64 位上使用 32 位 TTS 语音
- msbuild - 无法使用 MSTest.TestAdapter 和 MSTest.Testframework 包进行编译
- php - PHP上传图片不起作用
- c - `getlogin()` 是通过读取`/var/run/utmp` 来实现的吗?
- c# - 如何使用 C# 中的 LdapConnection 对象在 LDAP 中搜索用户?
- java - 用随机的非重复数字填充数组(我怎样才能更快地做到这一点)?
- .net - ASP.NET Core 身份更改登录 URL
- python - 如何阻止 Python 'import' 也导入文件名?
- swift - 尝试使用 AVFoundation AVAssetWriter 将 Metal 帧写入 Quicktime 文件时出现所有黑帧
- jquery - nav navbar-nav navbar-right 下拉内容不会在移动设备上下推菜单项