没有生成日志文件 - 使用日志记录模块的python

时间:2015-06-19 05:38:13

标签: python python-2.7 logging

我正在使用日志记录模块来创建日志文件。它检查平台并提供根据平台创建日志文件的方法

import  os,platform,logging

if platform.platform('windows'):
    logging_file=os.path.join(os.getenv('HOMEDRIVE'),os.getenv('HOMEPATH'),'test.log')
else:
    logging_file = os.path.join(os.getenv('HOME'),'test.log')

print"logging to",logging_file

logging.basicConfig(level=logging.DEBUG,format='%(asctime)s : %(levelname)s :%(message)s',filename=logging_file, filemode='w')


logging.DEBUG("start of the program")
logging.info("doing something")
logging.warning("u are gonna die")

3 个答案:

答案 0 :(得分:3)

您提供的代码没有正确缩进,您应该使用logging.debug而不是logging.DEBUG,因为后者是用于表示日志级别的整数常量。这是更新的代码

import  os,platform,logging

if platform.platform('windows'):
    logging_file=os.path.join(os.getenv('HOMEDRIVE'),os.getenv('HOMEPATH'),'test.log')
else:
    logging_file = os.path.join(os.getenv('HOME'),'test.log')

print"logging to",logging_file

logging.basicConfig(level=logging.DEBUG,
                    format='%(asctime)s : %(levelname)s :%(message)s',
                    filename=logging_file,
                    filemode='w')


logging.debug("start of the asdfasdfprogram")
logging.info("doing something")
logging.warning("u are gonna die")

答案 1 :(得分:2)

也许你正在使用unix系统,下面的陈述是错误的 -

platform.platform('windows')

platform.platform函数总是将底层平台作为字符串返回,稍后您将直接测试string in if条件,它将始终返回true,因此它始终假定您在Windows系统中

你需要一个像 -

这样的条件
if 'windows' in platform.platform().lower():

另外,正如k4vin所说 - 如果这不是一个类型你应该使用logging.debug而不是logging.DEBUG,第一个是函数,其中第二个是用来表示记录级别DEBUG

logging.debug("start of the program")

答案 2 :(得分:0)

在创建basicconfig

之前,应该清除日志记录处理程序

<强>代码

import  os,platform,logging

if 'windows' in platform.platform().lower():
    logging_file=os.path.join(os.getenv('HOMEDRIVE'),os.getenv('HOMEPATH'),'test.log')
else:
    logging_file = os.path.join(os.getenv('HOME'),'test.log')

print"logging to",logging_file
logging.getLogger('').handlers = []
logging.basicConfig(level=logging.DEBUG,format='%(asctime)s : %(levelname)s :%(message)s',filename=logging_file, filemode='w')    

logging.DEBUG("start of the program")
logging.info("doing something")
logging.warning("u are gonna die")

您可以查看此link以获取更多信息