Issue33423
Created on 2018-05-04 02:38 by Daehee Kim, last changed 2022-04-11 14:59 by admin. This issue is now closed.
| Messages (5) | |||
|---|---|---|---|
| msg316154 - (view) | Author: Daehee Kim (Daehee Kim) | Date: 2018-05-04 02:47 | |
There's a proposal for a fix inconsistency of logger mechanism.
See below.
Example 1.
---------------------------------------------------
import logging
app_logger = logging.getLogger('app')
app_logger.error('foo')
logging.error('goo')
app_logger.error('foo')
---------------------------------------------------
result:
foo
ERROR:root:goo
ERROR:app:foo
---------------------------------------------------
You can see the inconsistency of app_logger results.
Example 2.
---------------------------------------------------
import logging
stream_handler = logging.StreamHandler()
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
stream_handler.setFormatter(formatter)
app_logger: logging.Logger = logging.getLogger('app')
app_logger.setLevel(logging.ERROR)
app_logger.addHandler(stream_handler)
app_logger.critical('foo')
logging.critical('goo')
app_logger.critical('foo')
---------------------------------------------------
results:
2018-05-04 11:21:15,199 - app - CRITICAL - foo
CRITICAL:root:goo
2018-05-04 11:21:15,200 - app - CRITICAL - foo
CRITICAL:app:foo
---------------------------------------------------
You can see even inconsistency of app_logger`s outputs count.
So I have some proposals for fix it.
Proposal 1.
Remove implicit calling `basicConfig`. Then you can get the consistent results.
Result of the example 1.
foo
goo
foo
Result of the example 2.
2018-05-04 11:31:36,069 - app - CRITICAL - foo
goo
2018-05-04 11:31:36,070 - app - CRITICAL - foo
link : https://github.com/zsaladin/cpython/commit/c4e789af32da36ba49196fd6be9c070f62346b7a#diff-043d23e54edc5360a7785ae212d1b806
Proposal 2.
Add calling `basicConfig` in `callHandlers` method if the root logger has no handler.
Result of the example 1.
ERROR:app:foo
ERROR:root:goo
ERROR:app:foo
Result of the example 2.
2018-05-04 11:36:45,318 - app - CRITICAL - foo
CRITICAL:app:foo
CRITICAL:root:goo
2018-05-04 11:36:45,319 - app - CRITICAL - foo
CRITICAL:app:foo
https://github.com/zsaladin/cpython/commit/fc295b46a4de584dc5c6724125b2c0f8b2694aa6#diff-043d23e54edc5360a7785ae212d1b806
Thank you.
|
|||
| msg316155 - (view) | Author: Daehee Kim (Daehee Kim) | Date: 2018-05-04 02:54 | |
Please, ignore first one, `msg316153` It has duplicated message so I rewrote `msg316154`. I could not find delete or edit messages menu. |
|||
| msg316156 - (view) | Author: Anilyka Barry (abarry) * ![]() |
Date: 2018-05-04 02:56 | |
You don't have access to this feature, so I've deleted the message for you :) |
|||
| msg316157 - (view) | Author: Daehee Kim (Daehee Kim) | Date: 2018-05-04 03:06 | |
Oh! Thank you for your kindness. :) |
|||
| msg319038 - (view) | Author: Vinay Sajip (vinay.sajip) * ![]() |
Date: 2018-06-08 10:11 | |
You can't make the proposed change (removing call to basicConfig() from logging.debug() etc.) without breaking backwards compatibility. The inconsistency is just a consequence of how you choose to mix and match calls to the module-level convenience functions and calls to individual loggers. I've marked the resolution for this as "not a bug" rather than "wontfix" even though the issue is of type "enhancement". That's because I don't think the proposed change will be an actual enhancement over the status quo. |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022-04-11 14:59:00 | admin | set | github: 77604 |
| 2018-06-08 10:11:54 | vinay.sajip | set | status: open -> closed nosy:
+ vinay.sajip resolution: not a bug |
| 2018-05-04 03:06:08 | Daehee Kim | set | messages: + msg316157 |
| 2018-05-04 02:56:17 | abarry | set | nosy:
+ abarry messages: + msg316156 |
| 2018-05-04 02:55:32 | abarry | set | messages: - msg316153 |
| 2018-05-04 02:54:21 | Daehee Kim | set | messages: + msg316155 |
| 2018-05-04 02:47:33 | Daehee Kim | set | messages: + msg316154 |
| 2018-05-04 02:38:56 | Daehee Kim | create | |

