gpt4 book ai didi

python - 如何使用记录器打印当前文件名?

转载 作者:太空宇宙 更新时间:2023-11-03 14:12:27 25 4
gpt4 key购买 nike

我正在 Python 中使用 Logger 模型。我希望日志还打印​​调用记录器的文件名。这怎么可能做到呢?

这是我当前的实现:

class Logger(object):
def __init__(self, name):
self.logger = logging.getLogger(name)
self.logger.setLevel(logging.INFO)

# create the logging file handler
fh = logging.FileHandler("{}.log".format(name))

formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
fh.setFormatter(formatter)

# Add handle to logger object
self.logger.addHandler(fh)

def get_logger(self):
return self.logger

最佳答案

import logging

LOG = logging.getLogger(__name__)

if __name__ == "__main__":
logging.basicConfig()

LOG.error("Foo")
LOG.error(__file__)

结果:

ERROR:__main__:Foo
ERROR:__main__:mylog.py

对于更复杂的情况,您可以使用记录器配置来设置日志消息格式化程序,该格式化程序使用 LogRecordfilename 属性在每个日志中包含文件名行而不使其成为日志消息正文的一部分。

例如

logging.basicConfig(format="%(filename)s: %(message)s")

将导致日志行:

mylog.py: Foo
mylog.py: mylog.py

关于python - 如何使用记录器打印当前文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48407358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com