質問するログイン新規登録

回答編集履歴

2

追記

2018/03/09 06:29

投稿

umyu
umyu

スコア5846

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

追記

2018/03/09 06:29

投稿

umyu
umyu

スコア5846

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