回答編集履歴

5

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

2020/04/30 03:27

投稿

teamikl
teamikl

スコア8760

test CHANGED
@@ -114,15 +114,17 @@
114
114
 
115
115
  })
116
116
 
117
+ # (2)
118
+
119
+ # import sub
120
+
121
+
122
+
117
123
  logger = logging.getLogger(__name__)
118
124
 
119
125
  logger.debug("TEST")
120
126
 
121
127
 
122
-
123
- # (2)
124
-
125
- # import sub
126
128
 
127
129
  sub.funcA()
128
130
 

4

説明補足

2020/04/30 03:27

投稿

teamikl
teamikl

スコア8760

test CHANGED
@@ -38,6 +38,10 @@
38
38
 
39
39
  コメントアウト部分を編集して試してみてください。
40
40
 
41
+ (※ モジュールキャッシュの影響がないことを明示する為、
42
+
43
+ import sub が dictConfig 後の時は、ファイル先頭のimportはコメントアウトで)
44
+
41
45
 
42
46
 
43
47
  | | (1) disable_existing_loggers | (2) import sub の位置 |
@@ -46,7 +50,7 @@
46
50
 
47
51
  | case 1 | True(省略時) | ファイル先頭 |
48
52
 
49
- | case 2 | True(省略時) | dictConfig 後 (ファイル先頭はコメントアウトで) |
53
+ | case 2 | True(省略時) | dictConfig 後 |
50
54
 
51
55
  | case 3 | False | ファイル先頭 |
52
56
 

3

説明補足

2020/04/30 03:18

投稿

teamikl
teamikl

スコア8760

test CHANGED
@@ -46,7 +46,7 @@
46
46
 
47
47
  | case 1 | True(省略時) | ファイル先頭 |
48
48
 
49
- | case 2 | True(省略時) | dictConfig 後 |
49
+ | case 2 | True(省略時) | dictConfig 後 (ファイル先頭はコメントアウトで) |
50
50
 
51
51
  | case 3 | False | ファイル先頭 |
52
52
 

2

typo修正

2020/04/30 03:16

投稿

teamikl
teamikl

スコア8760

test CHANGED
@@ -132,7 +132,7 @@
132
132
 
133
133
  ```python
134
134
 
135
- # sub.pt
135
+ # sub.py
136
136
 
137
137
 
138
138
 

1

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

2020/04/30 03:01

投稿

teamikl
teamikl

スコア8760

test CHANGED
@@ -27,3 +27,133 @@
27
27
 
28
28
 
29
29
  `'disable_existing_loggers': False` を設定する
30
+
31
+
32
+
33
+
34
+
35
+ ----
36
+
37
+ disable_existing_loggers の挙動について、動作確認用のサンプルコードを追記します。
38
+
39
+ コメントアウト部分を編集して試してみてください。
40
+
41
+
42
+
43
+ | | (1) disable_existing_loggers | (2) import sub の位置 |
44
+
45
+ |--|--|--|
46
+
47
+ | case 1 | True(省略時) | ファイル先頭 |
48
+
49
+ | case 2 | True(省略時) | dictConfig 後 |
50
+
51
+ | case 3 | False | ファイル先頭 |
52
+
53
+ | case 4 | False | dictConfig 後 |
54
+
55
+
56
+
57
+ ```python
58
+
59
+ # main.py
60
+
61
+
62
+
63
+ import logging.config
64
+
65
+ import sub
66
+
67
+
68
+
69
+ if __name__ == "__main__":
70
+
71
+ logging.config.dictConfig({
72
+
73
+ 'version': 1,
74
+
75
+ 'formatters': {
76
+
77
+ 'brief': {
78
+
79
+ 'format': '[%(asctime)s] %(levelname)s in %(module)s %(funcName)s: %(message)s',
80
+
81
+ }
82
+
83
+ },
84
+
85
+ 'handlers': {
86
+
87
+ 'console': {
88
+
89
+ 'class': 'logging.StreamHandler',
90
+
91
+ 'formatter': 'brief',
92
+
93
+ 'stream': 'ext://sys.stdout',
94
+
95
+ }
96
+
97
+ },
98
+
99
+ 'root': {
100
+
101
+ 'level': 'DEBUG',
102
+
103
+ 'handlers': ['console']
104
+
105
+ },
106
+
107
+ # (1)
108
+
109
+ # 'disable_existing_loggers': False,
110
+
111
+ })
112
+
113
+ logger = logging.getLogger(__name__)
114
+
115
+ logger.debug("TEST")
116
+
117
+
118
+
119
+ # (2)
120
+
121
+ # import sub
122
+
123
+ sub.funcA()
124
+
125
+ sub.funcB()
126
+
127
+ ```
128
+
129
+
130
+
131
+
132
+
133
+ ```python
134
+
135
+ # sub.pt
136
+
137
+
138
+
139
+ import logging
140
+
141
+
142
+
143
+ logger = logging.getLogger(__name__)
144
+
145
+
146
+
147
+ def funcA():
148
+
149
+ logger.debug("TEST")
150
+
151
+
152
+
153
+ def funcB():
154
+
155
+ logger = logging.getLogger(__name__)
156
+
157
+ logger.debug("TEST")
158
+
159
+ ```