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

回答編集履歴

5

コード修正。コメントアウトしたコードを近い位置にして解りやすく。

2020/04/30 03:27

投稿

teamikl
teamikl

スコア8817

answer CHANGED
@@ -56,11 +56,12 @@
56
56
  # (1)
57
57
  # 'disable_existing_loggers': False,
58
58
  })
59
+ # (2)
60
+ # import sub
61
+
59
62
  logger = logging.getLogger(__name__)
60
63
  logger.debug("TEST")
61
64
 
62
- # (2)
63
- # import sub
64
65
  sub.funcA()
65
66
  sub.funcB()
66
67
  ```

4

説明補足

2020/04/30 03:27

投稿

teamikl
teamikl

スコア8817

answer CHANGED
@@ -18,11 +18,13 @@
18
18
  ----
19
19
  disable_existing_loggers の挙動について、動作確認用のサンプルコードを追記します。
20
20
  コメントアウト部分を編集して試してみてください。
21
+ (※ モジュールキャッシュの影響がないことを明示する為、
22
+ import sub が dictConfig 後の時は、ファイル先頭のimportはコメントアウトで)
21
23
 
22
24
  | | (1) disable_existing_loggers | (2) import sub の位置 |
23
25
  |--|--|--|
24
26
  | case 1 | True(省略時) | ファイル先頭 |
25
- | case 2 | True(省略時) | dictConfig 後 (ファイル先頭はコメントアウトで) |
27
+ | case 2 | True(省略時) | dictConfig 後 |
26
28
  | case 3 | False | ファイル先頭 |
27
29
  | case 4 | False | dictConfig 後 |
28
30
 

3

説明補足

2020/04/30 03:18

投稿

teamikl
teamikl

スコア8817

answer CHANGED
@@ -22,7 +22,7 @@
22
22
  | | (1) disable_existing_loggers | (2) import sub の位置 |
23
23
  |--|--|--|
24
24
  | case 1 | True(省略時) | ファイル先頭 |
25
- | case 2 | True(省略時) | dictConfig 後 |
25
+ | case 2 | True(省略時) | dictConfig 後 (ファイル先頭はコメントアウトで) |
26
26
  | case 3 | False | ファイル先頭 |
27
27
  | case 4 | False | dictConfig 後 |
28
28
 

2

typo修正

2020/04/30 03:16

投稿

teamikl
teamikl

スコア8817

answer CHANGED
@@ -65,7 +65,7 @@
65
65
 
66
66
 
67
67
  ```python
68
- # sub.pt
68
+ # sub.py
69
69
 
70
70
  import logging
71
71
 

1

設定disable_existing_loggers True/False について、動作確認用のコードを追記

2020/04/30 03:01

投稿

teamikl
teamikl

スコア8817

answer CHANGED
@@ -12,4 +12,69 @@
12
12
 
13
13
  解決策:
14
14
 
15
- `'disable_existing_loggers': False` を設定する
15
+ `'disable_existing_loggers': False` を設定する
16
+
17
+
18
+ ----
19
+ disable_existing_loggers の挙動について、動作確認用のサンプルコードを追記します。
20
+ コメントアウト部分を編集して試してみてください。
21
+
22
+ | | (1) disable_existing_loggers | (2) import sub の位置 |
23
+ |--|--|--|
24
+ | case 1 | True(省略時) | ファイル先頭 |
25
+ | case 2 | True(省略時) | dictConfig 後 |
26
+ | case 3 | False | ファイル先頭 |
27
+ | case 4 | False | dictConfig 後 |
28
+
29
+ ```python
30
+ # main.py
31
+
32
+ import logging.config
33
+ import sub
34
+
35
+ if __name__ == "__main__":
36
+ logging.config.dictConfig({
37
+ 'version': 1,
38
+ 'formatters': {
39
+ 'brief': {
40
+ 'format': '[%(asctime)s] %(levelname)s in %(module)s %(funcName)s: %(message)s',
41
+ }
42
+ },
43
+ 'handlers': {
44
+ 'console': {
45
+ 'class': 'logging.StreamHandler',
46
+ 'formatter': 'brief',
47
+ 'stream': 'ext://sys.stdout',
48
+ }
49
+ },
50
+ 'root': {
51
+ 'level': 'DEBUG',
52
+ 'handlers': ['console']
53
+ },
54
+ # (1)
55
+ # 'disable_existing_loggers': False,
56
+ })
57
+ logger = logging.getLogger(__name__)
58
+ logger.debug("TEST")
59
+
60
+ # (2)
61
+ # import sub
62
+ sub.funcA()
63
+ sub.funcB()
64
+ ```
65
+
66
+
67
+ ```python
68
+ # sub.pt
69
+
70
+ import logging
71
+
72
+ logger = logging.getLogger(__name__)
73
+
74
+ def funcA():
75
+ logger.debug("TEST")
76
+
77
+ def funcB():
78
+ logger = logging.getLogger(__name__)
79
+ logger.debug("TEST")
80
+ ```