编写日志文件的标头

时间:2018-02-18 16:49:02

标签: python logging

我的记录器看起来像这样:

import logging

logfile = 'name.log'

formatter = logging.Formatter('%(asctime)s\t%(message)s')


def setup_logger(name, log_file, level=logging.INFO):


    handler = logging.FileHandler(log_file)
    handler.setFormatter(formatter)

    logger = logging.getLogger(name)
    logger.setLevel(level)
    logger.addHandler(handler)

    return logger

logger = setup_logger('first_logger', logfile)


logger.info("Col1: {}\t : Col2 {}\t Col3: {}".format(a, str(b), c))

输出如下:

2018-01-01 19:03:23,126 Col1:106 Col2:"some string"  Col3: 12
2018-01-01 19:03:24,127 Col1:7676 Col2:"some string"  Col3: 80
2018-01-01 19:03:10,12  Col1:2 Col2:"some string"  Col3: 7

我想编写记录器,以便获得这样的输出格式:

Timestamp Col1 Col2 Col3
2018-01-01 19:03:23,126  106 "some string" 12
2018-01-01 19:03:24,127 7676 "some string"  80
2018-01-01 19:03:10,12  2 "some string"  7

因此,我不想记录键值,而是将键(列名)打印为标题。

有可能吗?

1 个答案:

答案 0 :(得分:0)

我同意Norrius的说法,日志记录可能不是正确的工具,但是如果你坚持任何原因,你可以先记录标题,然后只记录值:

logger.info("Col1 Col2 Col3")

logger.info("{}\t {}\t {}".format(a, str(b), c))

虽然这也会记录标题的时间戳,所以你需要使用行之间的格式。