繁体   English   中英

Pycharm在控制台中复制文件日志

[英]Pycharm duplicating file logging in console

Python 3.6.4 Pycharm版本2017.3

我试图登录到级别= debug的文件和控制台级别= error的日志,但似乎正在将文件日志反映在运行控制台中(无格式),以及打算用于该控制台的日志。

我在配置菜单中将文件设置为别名。 记录到文件的行为符合预期。

我从文档中的教程中取消了日志记录配置:

LOGGER = logging.getLogger(__name__)
LOGGER.setLevel(logging.DEBUG)
# create file handler which logs all debug messages
fh = logging.FileHandler('clsfr.log')
fh.setLevel(logging.DEBUG)
# create console handler with a higher log level
ch = logging.StreamHandler()
ch.setLevel(logging.ERROR)
# create formatter and add it to the handlers
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - 
%(message)s')
ch.setFormatter(formatter)
fh.setFormatter(formatter)
# add the handlers to logger
LOGGER.addHandler(ch)
LOGGER.addHandler(fh)

# from logger calls
LOGGER.error("Test ERROR message")
LOGGER.debug("about to yield {} {}".format(number, year))
LOGGER.debug('iterator returned {} {}'.format(number, year))
LOGGER.info('Queued file key {} - count is {}'.format(id, count))

某些输出到控制台:(全部为红色)

2018-01-31 15:15:40,594 - __main__ - ERROR - Test ERROR message
ERROR:__main__:Test ERROR message
DEBUG:__main__:about to yield 02680309 2000
DEBUG:__main__:iterator returned 02680309 2000
INFO:__main__:Queued file key 02680309_2000_1 - count is 1
DEBUG:__main__:about to yield 02680309 2001

相应输出到文件:(第一行仅红色)

2018-01-31 15:15:40,594 - __main__ - ERROR - Test ERROR message
2018-01-31 15:15:41,822 - __main__ - DEBUG - about to yield 02680309 
2000
2018-01-31 15:15:41,823 - __main__ - DEBUG - iterator returned 02680309 
2000
2018-01-31 15:15:41,823 - __main__ - INFO - Queued file key 
02680309_2000_1 - count is 1
2018-01-31 15:15:41,823 - __main__ - DEBUG - about to yield 02680309 
2001

我进行了一些搜索以尝试诊断,从而导致我在控制台中运行了几行代码,以查看是否有多个StreamHandlers,但看起来没有:

        logging.getLogger().handlers
Out[6]: []
        ch = logging.StreamHandler()
        logger = logging.getLogger('temp')
        logger.handlers
Out[9]: []
        logger.addHandler(ch)
        logger.handlers
Out[11]: [<StreamHandler <stderr> (NOTSET)>]
        fh = logging.FileHandler('test.log')
        fh
Out[13]: <FileHandler /Users/andyspence/Project/ccML_async/test.log 
         (NOTSET)>
        logger.addHandler(fh)
        logger.handlers
Out[15]: [<StreamHandler <stderr> (NOTSET)>,
         <FileHandler /Users/andyspence/Project/ccML_async/test.log 
         (NOTSET)>]

Python错误或Pycharm配置错误

来自终端的结果是相同的。

我查看了我的模块,并删除了未使用的记录器定义。

然后代码按预期执行

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM