- Home>
- today I learned>
- TIL: Python logger extra keyword
Today I learned that extra arguments can be passed to any Python stdlib logger method that logs a message with the extra
keyword argument as a dict. The extra arguments may be used in a formatter or with other logging tools like structlog.
import logging
import os
logging.basicConfig(
format=
"%(asctime)s %(message)s | %(sysname)s %(version)s %(release)s %(machine)s"
)
logger = logging.getLogger()
system_info = os.uname()
import logging
import os
logging.basicConfig(
format=
"%(asctime)s %(message)s | %(sysname)s %(version)s %(release)s %(machine)s"
)
logger = logging.getLogger()
system_info = os.uname()
logger.critical(
"Critical error message!",
extra={
"sysname": system_info.sysname,
"machine": system_info.machine,
"version": system_info.version,
"release": system_info.release,
},
)
Output is:
2022-04-21 00:47:31,691 Critical error message! | Linux #29~20.04.1-Ubuntu SMP Fri Jan 14 00:32:30 UTC 2022 5.13.0-27-generic x86_64