[파이썬] Psycopg2에서 Query logging

Psycopg2 is a popular PostgreSQL adapter for Python. It provides a convenient way to interact with a PostgreSQL database from a Python application. One of the useful features of Psycopg2 is the ability to enable query logging. Query logging allows you to see the SQL queries that are being executed against the database, which can be helpful for debugging or performance optimization purposes.

To enable query logging in Psycopg2, you can use the set_session method of the psycopg2.extensions module. Here’s an example of how you can enable query logging:

import psycopg2
from psycopg2 import extensions

# Connect to the PostgreSQL database
conn = psycopg2.connect("dbname=mydb user=myuser password=mypassword")

# Enable query logging
extensions.set_session(conn, options={"show_query": True})

# Execute a sample SQL query
cursor = conn.cursor()
cursor.execute("SELECT * FROM mytable")

# Fetch the results
results = cursor.fetchall()

# Print the query log
query_log = extensions.make_log(conn)
print(query_log)

# Close the connection
conn.close()

In the example above, we first connect to the PostgreSQL database using the psycopg2.connect method. Then, we call the set_session method with the show_query option set to True. This instructs Psycopg2 to log the executed queries. After executing a sample SQL query, we use the make_log method to retrieve the query log. Finally, we print the query log and close the database connection.

By enabling query logging in Psycopg2, you can easily monitor and analyze the SQL queries being executed by your application. This can be extremely helpful for troubleshooting database-related issues or optimizing query performance.

Note that query logging can generate a large amount of output, especially in a production environment with heavy database activity. Therefore, it’s important to use query logging judiciously and consider turning it off when it’s no longer needed.

Psycopg2’s query logging feature is just one of the many powerful capabilities it offers. If you’re working with PostgreSQL databases in Python, Psycopg2 is definitely worth exploring. Its rich feature set and excellent performance make it a popular choice among Python developers.