Python 记录到标准输出和日志文件

标签 python logging

我是 python 的新手,开始接触日志记录模块。我想将消息记录到日志文件中并输出到控制台。下面的代码将消息打印到控制台,但我怎样才能让所有消息都登录到文件中?

Logger 对象没有用于记录到文件的函数调用 (basicConfig(filename=))。如何添加此功能?

提前感谢您的帮助。

import logging

# create logger
logger = logging.getLogger(_name_)
logger.setLevel(logging.DEBUG)

# create console handler and set level to debug
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)

# create formatter
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

# add formatter to ch
ch.setFormatter(formatter)

# add ch to logger
logger.addHandler(ch)

# 'application' code
logger.debug('debug message')
logger.info('info message')
logger.warn('warn message')
logger.error('error message')
logger.critical('critical message')

最佳答案

您只需要添加另一个处理程序,例如 logging.FileHandler

fh = logging.FileHandler(r'/path/to/log.txt')
logger.addHandler(fh)

关于Python 记录到标准输出和日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40858658/

相关文章:

python - 训练后用占位符交换 TensorFlow 数据集输入管道

python - 如何基于部分匹配选择DataFrame列?

python - 将 Numpy 存储为 pickled Pandas、Pickled Numpy 或 HDF5

python - 如何使用 confluence-kafka-python 删除主题

logging - 有没有办法将日志事件从 crashlytics/fabric 获取到 ELK 或像 datadog 这样的 SaaS 指标平台?

数组中的 Python Numba 值

java - log4j 1.2.17 extras - 记录到错误的文件

logging - Log4j:每个 war 一个日志文件

java - 基本记录大量条目

python - 为 Elasticsearch 日志添加钩子(Hook)