我是Python新手,我想在Python中在一处定义以下日志记录代码,以便它可以在其他Python文件(类或非类)中使用。对于Java,我们使用log4j或slf4j作为jar文件的一部分,我们简单地定义为Logger logger = Logger.getLogger("class name")
,我想要完全像这样实现,这样我就可以在任何 python 模块中使用记录器。目前我在所有类中定义配置。
import logging
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s [%(levelname)s] %(message)s",
handlers=[
logging.FileHandler("debug.log"),
logging.StreamHandler()
]
)
我也浏览过这个SO链接Using logging in multiple modules
还请为具有更多 python 文件的中型到大型项目建议最推荐的方法。
最佳答案
根据此链接https://fangpenlin.com/posts/2012/08/26/good-logging-practice-in-python/ ,作者提到了一个更好的做法。可能有更好的推荐方法。 您必须按以下方式进行。
- 按照链接中所述定义
logging.json
文件。 - 定义一个名为
LogSetup.py
的 Python 文件并添加到代码下方。
def setup_logging(default_path='logging.json', default_level=logging.DEBUG, env_key='LOG_CFG'): """Setup logging configuration""" path = default_path value = os.getenv(env_key, None) if value: path = value if os.path.exists(path): with open(path, 'rt') as f: config = json.load(f) logging.config.dictConfig(config) else: logging.basicConfig(level=default_level)
- 在 main 方法中像
LogSetup.setup_logging()
一样调用上面的文件。 我在下面提供了代码片段。
logger =logging.getLogger(名称)
if __name__ == '__main__':
LogSetup.setup_logging()
logger.debug("This is a debug message ...")
这对我来说看起来不错,其他人可能会推荐更好的方法。
关于java - 如何在 Python 中的一处定义日志记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60231863/