python - 日志记录模块不写入文件

标签 python windows powershell logging

我正在使用 logging 模块,并且我已经传递了与当前正在运行的其他作业相同的参数:

import logging
from inst_config import config3

logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s [%(levelname)s] - %(message)s',
    filename=config3.GET_LOGFILE(config3.REQUESTS_USAGE_LOGFILE))
logging.warning('This should go in the file.')

if __name__ == '__main__':
    logging.info('Starting unload.')

使用此方法创建文件名:

REQUESTS_USAGE_LOGFILE = r'C:\RunLogs\Requests_Usage\requests_usage_runlog_{}.txt'.format(
        CUR_MONTH)
def GET_LOGFILE(logfile):
    """Truncates file and returns."""
    with open(logfile, 'w'):
        pass
    return logfile

但是,当我运行它时,它正在创建文件,然后仍然将日志记录信息输出到控制台。我在 Powershell 中运行。

试过像这样把它放在主语句中:

if __name__ == '__main__':
    logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s [%(levelname)s] - %(message)s',
    filename=config3.GET_LOGFILE(config3.REQUESTS_USAGE_LOGFILE))

    logging.warning('This should go in the file.')

仍然没有运气。

最佳答案

我在 logging.basicConfig() 之前添加了以下几行,它对我有用。

for handler in logging.root.handlers[:]:
    logging.root.removeHandler(handler)

关于python - 日志记录模块不写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35898160/

相关文章:

python - Django 中的 DRY View

windows - ruby 。如何在 Windows 上的 irb 中复制和粘贴?

powershell - TFS 构建 vNext rest api : queue build requested for

powershell - 如何检查PowerShell管道是否为每个管道元素返回true?

powershell - 查找并删除文本文件中没有字符串模式的行

python - Polyfill算法中如何处理水平方向?

python - 参数化 pytest 用于列表和 pandas 数据框 fixture

python - 如何查看已安装的 Python 包

windows - 如何在 Windows 的 Powershell 中获取 Dropbox 文件夹

java - 批处理文件可以从本地机器到远程机器执行(本地)Java代码吗