我正在尝试修改Python记录器的输出以显示进程ID.
我试过的两种方法:
import logging
FORMAT = "%(asctime)s %(process)s %(thread)s: %(message)s"
logging.basicConfig(format=FORMAT)
logger = logging.getLogger('my_logger')
Run Code Online (Sandbox Code Playgroud)
和
import logging
FORMAT = "%(asctime)s %(process)s %(thread)s: %(message)s"
logger = logging.getLogger('my_logger')
handler = logger.handlers[0]
handler.setFormatter(logging.Formatter(FORMAT))
Run Code Online (Sandbox Code Playgroud)
纳达.第一个不改变格式.当我尝试访问时,第二个抛出索引错误logger.handlers[0].
我不想编写自己的处理程序,只需修改默认处理程序的格式.有一个简单的方法吗?
第一个改变格式
logging.<severity>("message")
Run Code Online (Sandbox Code Playgroud)
换句话说,当您在第一个示例中设置format时,您不需要获取单独的logger实例,您只需使用logging它自己.据说,如果您使用的任何其他模块也使用,它可能会产生不良影响logging.
如果要更改单独记录器的格式,可以使用以下示例:
from logging import StreamHandler, Formatter
FORMAT = '%(asctime)-15s %(levelname)-6s %(message)s'
DATE_FORMAT = '%b %d %H:%M:%S'
formatter = Formatter(fmt=FORMAT, datefmt=DATE_FORMAT)
handler = StreamHandler()
handler.setFormatter(formatter)
logger = logging.getLogger(__name__)
logger.addHandler(handler)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8469 次 |
| 最近记录: |