python的logging无法输出到文件?

raikkon
  • 90

logging配置如下:

logging.basicConfig(level=logging.DEBUG,\

format="%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s",\
datefmt="%a, %d %b %Y %H:%M:%S",\
filename="i2_insert_equipments.log",\
filemode="w")

但当在代码中使用logging.info的时候,目录下无日志文件生成。但当在控制台中运行的时候,是可以正常运行的,有知道这种现象如何解决的么? 望告知一下,谢谢。

回复
阅读 10.3k
3 个回答

你不会用,我给你一个例子

#! /usr/bin/env python

import sys
import logging

def add_log_file(infile=None):
    logger = logging.getLogger()
    if infile is not None:
        handler = logging.FileHandler(infile)
    else:
        handler = logging.StreamHandler()
    logger.handlers.append(handler)
    return

def main():
    for c in sys.argv[1:]:
        add_log_file(c)
    for c in sys.argv[1:]:
        logging.error('%s'%(c))


main()

filename 的问题吧,你指定个绝对路径,然后再试试,filemode="w"你这样的话,每次会生成一个新文件,

在交互式命令行下的环境是不同的,特别是对于某些涉及到文件和系统的操作,比如你可以试试在交互式命令行下新建进程.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏