Python日志记录将字符串拆分为两行

时间:2017-06-05 03:56:25

标签: python python-2.7 csv pandas logging

我像这样设置日志:

import logging

log_filename = 'foo'
logging.basicConfig(level=logging.WARNING,
                format='%(asctime)s  ==  %(levelname)-8s  ==  %(message)s',
                datefmt='%m/%d/%Y %I:%M:%S %p',
                filename=log_filename,
                )

(仅供参考:我还定义了一个处理程序,它将CRITICAL消息或更高级别的消息写入sys.stderr,但我非常积极,这并不会导致我的问题。如果您认为是,请告诉我,我&# 39;也会发布该代码。)

这种设置在很大程度上运作良好。但是,当我尝试记录以下内容时遇到了问题:

logging.critical("   DATE        TIME       BALANCE")

我希望将字符串记录为单行。 (值得注意的是,我写入std.out的处理程序将字符串表示为终端中的单行。)而是,这是日志文件中的结果:

06/04/2017 11:23:51 PM  ==  CRITICAL  ==     DATE
     TIME       BALANCE

由于某种原因,记录器似乎将字符串拆分为不同的行。问题不是由字符串的长度引起的,因为我记录了更长的字符串,显示为单行。因此,在我看来,它必须与上述字符串的内容相关(其中包括空格和制表符的混合,在" DATE"," TIME"和&#34之间; BALANCE&#34)。有谁知道造成这种行为的原因是什么?

**编辑#1:出于谨慎的考虑,我添加了#34;导入日志记录"清楚我正在使用的模块。 (我还修正了一些拼写错误。)

**编辑#2:在对TessellatingHeckler的请求进行一些实验后,我很尴尬地说这个问题根本不是字符串的内容。我觉得这个问题很愚蠢。似乎以下几行代码实际上导致了这个问题:

import pandas as pd
data = pd.read_csv('bar.csv')
for index, row in data.iterrows():
    logging.critical(str("  " + row['Date']) + "        " + str(row['Time']) + "    " + str(row['Balance']))

我使用上面的代码来记录csv文件的内容。与上面发布的第一个日志类似,上面的代码导致字符串被分成两行,如下所示:

06/05/2017 12:23:45 AM  ==  CRITICAL  ==    6/3/17
        20:14:19    789.35

奇怪的是,在发生这种情况并将其作为日志文件的一部分之后,即使我删除了有问题的csv-writing部分代码并仅运行以下内容:

logging.critical("   DATE        TIME       BALANCE")

我仍然得到:

06/04/2017 11:23:51 PM  ==  CRITICAL  ==     DATE
     TIME       BALANCE

在日志文件中。相比之下,如果我运行相同的代码,除了登录到新的日志文件(没有有问题的csv编写代码),我得到一行,就像我原先预期/期望的那样:

06/04/2017 11:23:51 PM  ==  CRITICAL  ==     DATE        TIME       BALANCE

有谁知道可能导致这种奇怪行为的原因?

**编辑3:我添加了#34;导入pandas为pd"明确我正在使用熊猫模块。

0 个答案:

没有答案