回答編集履歴
2
追記
answer
CHANGED
|
@@ -6,18 +6,25 @@
|
|
|
6
6
|
# -*- coding: utf-8 -*-
|
|
7
7
|
import sqlite3
|
|
8
8
|
from contextlib import closing
|
|
9
|
+
from logging import FileHandler, DEBUG, getLogger
|
|
9
10
|
|
|
11
|
+
handler = FileHandler("test.log")
|
|
12
|
+
handler.setLevel(DEBUG)
|
|
13
|
+
logger = getLogger("test")
|
|
14
|
+
logger.setLevel(DEBUG)
|
|
15
|
+
logger.addHandler(handler)
|
|
10
16
|
|
|
17
|
+
|
|
11
18
|
def main() -> None:
|
|
12
19
|
db_name = ':memory:'
|
|
13
20
|
# connectionの閉じ忘れを防ぐためにcontextlib#closingを使用。
|
|
14
21
|
with closing(sqlite3.connect(db_name)) as conn:
|
|
15
22
|
conn.set_trace_callback(print)
|
|
23
|
+
# ログ・ファイルにSQLを書き出したい時は以下のコメントを外してくださいな。
|
|
24
|
+
#conn.set_trace_callback(logger.debug)
|
|
16
25
|
conn.execute('SELECT 1')
|
|
17
26
|
|
|
18
27
|
|
|
19
28
|
if __name__ == "__main__":
|
|
20
29
|
main()
|
|
21
|
-
|
|
22
|
-
|
|
23
30
|
```
|
1
追記
answer
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
[set_trace_callback](https://docs.python.jp/3/library/sqlite3.html#sqlite3.Connection.set_trace_callback)が使えます。
|
|
1
|
+
[sqlite3.Connection#set_trace_callback関数](https://docs.python.jp/3/library/sqlite3.html#sqlite3.Connection.set_trace_callback)が使えます。
|
|
2
2
|
|
|
3
3
|
以下はサンプルコードです。
|
|
4
4
|
|