python - 如何将 python 中 Logger 对象的输出发送到文件?

标签 python file logging

我正在 python 中使用logging库。我正在使用多个 logger 对象来输出信息。我已经到了输出太多的地步,我需要将其发送到日志文件而不是控制台。 我找不到配置记录器对象的输出流的函数,并且 basicConf 函数似乎无法解决问题。 这就是我所拥有的:

import logging # Debug logging framework
logging.basicConfig(filename='loggggggmeee.txt')
logger = logging.getLogger('simulation')
logger.setLevel(logging.INFO)

#--------------- etc-------------------#

logger.info('This is sent to the console')

有什么想法吗?谢谢!

最佳答案

尝试添加一个文件位置,如下所示,它将解决您的问题:

import logging # Debug logging framework
logging.basicConfig(filename='c:\\loggggggmeee.txt')
logger = logging.getLogger('simulation')
logger.setLevel(logging.INFO)

#--------------- etc-------------------#

logger.info('This is sent to the console')

顺便说一句,没有特定位置的文件将位于模块库中...

我真的建议您阅读Logging HOWTO它非常简单且有用。

还有Cookbook有很多有用的例子。

关于从文档中命名记录器的另一个好技巧:

a good convention to use when naming loggers is to use a module-level logger, in each module which uses logging, named as follows:

logger = logging.getLogger(__name__)

This means that logger names track the package/module hierarchy, and it’s intuitively obvious where events are logged just from the logger name.

关于python - 如何将 python 中 Logger 对象的输出发送到文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23536594/

相关文章:

python - dask,在每个worker上执行不可序列化的对象

asp.net - 决策者问题 : compare ASP. NET/Ruby/Python on web UI controls

javascript - 变量为 0 时的乘法赋值运算符

Android:在不在缓存文件夹/临时文件中创建副本的情况下从我的应用程序共享大文件(图像、文档等...)

logging - SCCM 2012应用程序在客户端软件中心安装 "Failed"

python - "int ' 对象不可订阅”

python - 为什么文件中单词的 md5 散列与字符串的散列不匹配?

python - 我怎样才能告诉 python 编辑另一个 python 文件?

java - 基于MDC将日志事件定向到不同的日志文件

elasticsearch - 在kibana中合并多个日志行