2016-09-28 76 views
0

我创建了这个python脚本来帮助我创建日志文件,同时运行我的脚本,它在我自己的机器中完美工作。但由于某些原因,确切的代码不适用于其他机器。 在我的机器上它显示了pycharm控制台中的日志,并将它们保存在一个文件中。在其他机器上,除了创建一个空白文件外,它什么也不做。Python日志工作在一个pycharm而不是另一个

我在做什么错?

log = logging.getLogger('Logger Name') 
try: 
    logger_file_name = new_file_name() 
    handler = logging.FileHandler(logger_file_name) 
    formatter = logging.Formatter('%(asctime)s | %(levelname)s | %(message)s') 
    handler.setFormatter(formatter) 
    log.addHandler(handler) 
    log.info(logger_file_name+ ' File will be used for Saving Logs') 
    main() 
except Exception as err: 
    log.debug("An Error was found which was not caught") 
    log.exception(err) 

回答

0

尝试显式设置日志级别,例如:

log.setLevel(logging.DEBUG) 

否则你依靠其可能上,可能在不同的安装不同Python版本不同的默认值机器。例如,在2.7.12上,默认级别设置为WARNING,并且log.info()消息不会显示 - 就像您观察到的一样。

从2.7.12记录文档的A simple example section

import logging 
logging.warning('Watch out!') # will print a message to the console 
logging.info('I told you so') # will not print anything 

如果你键入这些行到脚本并运行它,你会看到:

WARNING:root:Watch out! 

打印出来的安慰。该INFO消息不会出现,因为 的默认级别为WARNING ...

+0

我也尝试添加可用于打印和保存所有的日志,因为我需要它,但无济于事一个logger.NOTSET水平 – nishantvas

+0

'logger.NOTSET'的行为也可能依赖于python版本 - 至少在2.7.12上,'INFO'日志将不再显示。正如我所说的,试试'logging.DEBUG'。 –

+0

使用特定级别确实有帮助,但是我不得不截断我的日志 – nishantvas

相关问题